#include<cstdio>
#include<iostream>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<queue>
#include<cstring>
#include<sstream>
using namespace std;
deque<int> res;
int Is_order()
{
for(int i = 0; i < (int)res.size() - 1;++i)
if(res[i] > res[i+1]) return 0;
return 1;
}
int main()
{
string s;
int buf;
while(getline(cin, s))
{
cout << s << endl;
res.clear();
stringstream t(s);
while(t >> buf) res.push_back(buf);
int n = res.size();
int cnt = 0;
while(!Is_order())
{
int pos = max_element(res.begin(), res.end() - cnt) - res.begin();
if(pos == res.end() - res.begin() - cnt) { ++cnt; continue; }
else if(pos != 0)
{
deque<int> tmp;
tmp.clear();
for(int i = 0; i <= pos; ++i)
tmp.push_back(res[i]);
for(int i = 0; i <= pos; ++i) res.pop_front();
for(int i = 0; i <= pos; ++i) res.push_front(tmp[i]);
printf("%d ", n - pos);
}
else if(pos == 0)
{
deque<int> tmp;
tmp.clear();
for(int i = 0; i <= n - cnt - 1; ++i)
tmp.push_back(res[i]);
for(int i = 0; i <= n - cnt - 1; ++i) res.pop_front();
for(int i = 0; i <= n - cnt - 1; ++i) res.push_front(tmp[i]);
printf("%d ", cnt+1);
++cnt;
}
}
printf("0\n");
}
return 0;
}
UVA 120 Stacks of Flapjacks (STL deque&reverse)
最新推荐文章于 2020-04-19 21:35:05 发布