#include <iostream>
#include <istream>
#include <sstream>
#include <vector>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <cstring>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <numeric>
#include <chrono>
#include <ctime>
#include <cmath>
#include <cctype>
#include <string>
#include <cstdio>
#include <iomanip>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <functional>
#include <iterator>
using namespace std;
const int maxn = 36;
string input;
int data[maxn],base[maxn],cnt,last;
void DoOnce()
{
if (data[0] == base[last - 1])
{
reverse(data, data + last);
cout << cnt - last + 1 << " ";
return;
}
int id = find(data , data + last, base[last - 1]) - data;
reverse(data , data + id + 1);
cout << cnt - id << " ";
}
int main()
{
while (getline(cin, input)) {
cout << input << endl;
stringstream ss(input);
cnt = 0;
while (ss >> data[cnt++]);--cnt;
memmove(base, data, sizeof(data));
sort(base, base + cnt);
last = cnt;
while (last > 1)
{
while (last && data[last - 1] == base[last - 1]) last--;
if (!last) break;
DoOnce();
}
cout << "0" << endl;
}
return 0;
}
例题8-1(uva-120)
最新推荐文章于 2021-05-25 13:48:21 发布
该博客主要展示了一段C++代码,用于读取输入的字符串数组,进行排序和特定条件下的反转操作。程序涉及到标准库的多个头文件如iostream、algorithm等,并使用了诸如reverse、sort等函数。通过示例输入和输出,展示了如何处理字符串数组并找出特定序列。
461

被折叠的 条评论
为什么被折叠?



