标签:nbsp ted imu step map esc memory accept check
Time Limit: 5000MS | Memory Limit: 30000K | |
Total Submissions: 3672 | Accepted: 1035 |
Description
Input
Output
Sample Input
1 100 3 3 4 3 4 1 1 1 1 0
Sample Output
0 17 8
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <cstdlib> #include <iomanip> #include <cmath> #include <ctime> #include <map> #include <set> using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x<y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.141592653589793238462 #define INF 0x3f3f3f3f3f #define mem(a) (memset(a,0,sizeof(a))) typedef long long ll; ll a[50006],ans,n,pos; void check(int x) { int i,j; int mx=a[x]+a[x-1]; ans+=mx; for(i=x;i<pos-1;i++) a[i]=a[i+1]; pos--; for(j=x-1;j>0 && a[j-1]<mx;j--) a[j]=a[j-1]; a[j]=mx; while(j>=2 && a[j-2]<=a[j]) { int y=pos-j;//j后面有多少个数,往前移; check(j-1); j=pos-y; } } int main() { while(scanf("%lld",&n)&& n) { for(int i=0;i<n;i++) { scanf("%lld",&a[i]); } pos=1;ans=0; for(int i=1;i<n;i++) { a[pos++]=a[i]; while(pos>=3 && a[pos-3]<=a[pos-1]) { check(pos-2); } } while(pos>1) check(pos-1); printf("%lld\n",ans); } return 0; }
POJ 1738 An old Stone Game(石子合并 经典)
标签:nbsp ted imu step map esc memory accept check
原文地址:http://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7239471.html