本文共 1098 字,大约阅读时间需要 3 分钟。
Stacks of Flapjacks UVA - 120
/*算法竞赛入门 LRJ 例题8-1 UVA - 120*/#include #include #include #include #include #include #include #include #include typedef long long LL;using namespace std;#pragma comment(linker, "/STACK:102400000,102400000")const double eps = 1e-6;const int INF=0x3f3f3f3f;const int N = 1010;const int PI = acos(-1.0);int a[N],b[N];bool cmp(int x,int y){ return x > y;}void handle(int l,int r){ while(l < r) { int temp = a[l]; a[l] = a[r]; a[r] = temp; l++; r--; }}int main(){ int n = 0; char c; while(~scanf("%d%c",&a[++n],&c)) { while(c == ' ') scanf("%d%c",&a[++n],&c); for(int i = 1 ;i <= n; i++) { // b[i] = a[i]; if(i == n) printf("%d\n",a[i]); else printf("%d ",a[i]); } handle(1,n); for(int i = 1 ;i <= n; i++) b[i] = a[i]; sort(b+1,b+n+1,cmp); for(int i = 1; i <= n; i++) { //printf("%d ",b[i]); if(b[i] == a[i]) continue; int temp; for(int j = i+1; j <= n; j++) if(b[i] == a[j]) temp = j; if(temp != n) { printf("%d ",temp); handle(temp,n); temp = n; } printf("%d ",i); handle(i,temp); } printf("0\n"); n = 0; } return 0;}
转载地址:http://gcaoz.baihongyu.com/