UVa 514 - Rails

    xiaoxiao2022-07-05  156

    主要是栈的灵活使用。

    #include <stdio.h> #include <stack> int target[1000+10] = {0}; int main() { int n; while(scanf("%d", &n) == 1) { if(n == 0) break; for(;;) { scanf("%d", &target[0]); if(target[0] == 0) break; int enNum = 1; std::stack<int> s; bool yes = true; for(int i = 1; i < n; ++i) scanf("%d", &target[i]); for(int i = 0; i < n; ++i) { if(!s.empty() && target[i] == s.top()) { s.pop(); } else if( target[i] >= enNum) { for(int j = enNum; j < target[i]; ++j) s.push(j); enNum = target[i] + 1; } else { yes = false; break; } } printf("%s\n", yes ? "Yes" : "No"); } printf("\n"); } }
    最新回复(0)