UVA 11491 在线处理

#include <bits/stdc++.h>
using namespace std;
int n, l;
int main(int argc, char const *argv[])
{
	while (cin >> n >> l && n || l)
	{
		char ans[100010]; cin.get();
		for (int i = 0, j = 0; i < n; i++)
		{
			char c = cin.get();
			while (j && i - j < l && c > ans[j - 1]) j--;
			if (j + l < n) ans[j++] = c, ans[j] = 0;
		}
		cout << ans << endl;
	}
	return 0;
}


边读入边处理即可

你可能感兴趣的:(UVA 11491 在线处理)