車廂重排問題

#include<iostream>
#include<fstream>
#include<sstream>
#include<stack>
using namespace std;

int main() {
	ifstream in("rail.txt");
	for (int n, line = 0; in >> n && n && in.ignore();)
	{
		cout << (line++ ? "\n" : "");
		for (string s; getline(in, s) && s != "0"; )
		{
			istringstream sin(s);
			stack<int> st;
			for (int last = 0, coach; sin >> coach; st.pop())
			{
				for (int p = last + 1; p <= coach; ++p)
				{
					st.push(p);
				}
					if (last<coach)
					{
						last = coach;
					}
					if (st.top() != coach)
					{
						break;
					}
			}
			cout << (!sin ? "yes\n" : "No\n");
		}
	}
	system("pause");
	return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章