码迷,mamicode.com
首页 > 其他好文 > 详细

sicily 1021. Couples

时间:2016-05-11 23:32:33      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

这个题就用stack来解决啦,如果一个用例中的couple可以全部移走,则将环拆成链后最后的一对couple依然相邻,可以全部移走,因此将环拆成一个链来解决不影响结果;

 

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

int couple_relation[200005];

int main() {
    int t1, t2, n,i;
    while (scanf("%d", &n) && n!=0) {
        stack<int> s;
        for (i=0; i<n; i++) {
            cin>>t1>>t2;
            couple_relation[t1] = t2;
            couple_relation[t2] = t1;
        }
        for (i=1; i<=2*n; i++) {
            if (s.empty()) {
                s.push(i);
            }else if(couple_relation[i] == s.top())
                s.pop();
            else
                s.push(i);
        }
        if (s.empty())
            cout << "Yes" << endl;
        else
            cout << "No" << endl;
    }
    return 0;
}

 

sicily 1021. Couples

标签:

原文地址:http://www.cnblogs.com/zhousysu/p/5483678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!