64,282
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <fstream>
#include <sstream>
#include <stack>
using namespace std;
int main()
{
ifstream in("rail.txt");
for(int n,line=0;in>>n && in.ignore();)
{
cout < <(line++ ? "\n" : "");
for(string s;getline(in,s) && s!="0";)
{
istringstream sin(s);//sin是一个字符流
stack <int> st;
for(int last=0,coach;sin>>coach;st.pop())//last在初始化是为0,后面还是可以改变的。coach的值从sin中读出
{
for(int p=last+1;p <=coach;++p) st.push(p);//p小于coach就推出了,进栈的当然是p了
if(last <coach) last=coach;
if(st.top()!=coach) break;
}
cout < <(!sin ? "Yes\n" : "No\n");
}
}
}