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

Codeforces Round #279 (Div. 2) b

时间:2014-11-27 22:15:41      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:io   ar   sp   for   div   2014   bs   ad   ef   

/**
 * @brief Codeforces Round #279 (Div. 2) b
 * @file b.cpp
 * @author mianma
 * @created 2014/11/27 15:29
 * @edited  2014/11/27 20:40
 * @type 
 * @note
 */
#include <cstdio>
#include <stack>
#include <cstring>
#include <vector>
#include <set>
using namespace std;
#define max(a, b)  ((a) > (b) ? (a) : (b))
#define min(a, b)  ((a) > (b) ? (b) : (a)) 
#define abs(a)     ((a) >  0  ? (a) : (0 - (a)))
#define CLR(vec)   memset(vec, 0, sizeof(vec))
#define MAXN 1000010
set<int> lft_store;
set<int> rht_store;
int n;
//int lft[MAXN];
int rht[MAXN];
int i;
int left, right, curr, tmp;
int main(void){
#ifdef DEBUG
    freopen("./in",  "r", stdin);
    freopen("./out", "w", stdout);
#endif
    scanf("%d", &n);
    for(i = 0; i < n ; i++){
        scanf("%d%d", &left, &right);
        //lft[right] = left;
        rht[left]  = right;
        if(left)
        lft_store.insert(left);
        if(right)
        rht_store.insert(right);
    }
    for(set<int>::iterator iter = rht_store.begin(); iter != rht_store.end(); iter++){
#ifdef DEBUG
        printf("match = %d\n", *iter);
#endif
        lft_store.erase(*iter);
    }
    /*Get queue head*/
    curr = *lft_store.begin();
    right = rht[0];
#ifdef DEBUG
    printf("curr = %d, rht = %d\n", curr, right);
#endif
    do{
        printf("%d ", curr);
        tmp = rht[curr];
        curr = right;
        right = tmp;
#ifdef DEBUG
    //printf("curr = %d, rht = %d\n", curr, right);
#endif
    }while(right);
    printf("%d\n", curr);
    return 0;
}


Codeforces Round #279 (Div. 2) b

标签:io   ar   sp   for   div   2014   bs   ad   ef   

原文地址:http://my.oschina.net/u/572632/blog/349582

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