結果
| 問題 | No.429 CupShuffle | 
| コンテスト | |
| ユーザー |  dnish | 
| 提出日時 | 2017-07-01 15:35:27 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 87 ms / 2,000 ms | 
| コード長 | 928 bytes | 
| コンパイル時間 | 1,663 ms | 
| コンパイル使用メモリ | 168,208 KB | 
| 実行使用メモリ | 5,248 KB | 
| 最終ジャッジ日時 | 2024-10-05 04:22:08 | 
| 合計ジャッジ時間 | 2,798 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 16 | 
ソースコード
#include <bits/stdc++.h>
#define REP(i,n,N) for(int i=(n);i<(int) N;i++)
#define RREP(i,n,N) for(int i=N-1;i>=(int) n;i--)
#define p(s) cout<<(s)<<endl
#define DEBUG(x,y) cout<<#x<<": "<<x<<" , "<<#y<<": "<<y<<endl;
#define CK(n,a,b) ((a)<=(n)&&(n)<=(b))
#define F first
#define S second
typedef long long ll;
using namespace std;
const ll inf=1e9;
vector<int> cup(100010);
int cup2[100010];
int a[100010], b[100010];
int main(){
	int N, K, X;
	cin>>N>>K>>X;
	char f,g;
	REP(i, 0, K){
		if(i==X-1) {
			cin>>f>>g;
			continue;
		}
		cin>>a[i]>>b[i];
		//DEBUG(a[i],b[i]);
	}
	REP(i, 1, N+1){
		cup.at(i)=i;
	}
	REP(i, 0, X-1){
		swap(cup.at(a[i]), cup.at(b[i]));
	}
	REP(i, 1, N+1){
		int c;
		cin>>c;
		cup2[i]=c;
	}
	RREP(i, X, K){
		swap(cup2[a[i]], cup2[b[i]]);
	}
	bool flag=false;
	REP(i, 1, N+1){
		if(cup[i]!=cup2[i]){
			cout<<i;
			if(!flag){
				cout<<" ";
				flag=true;
			}
		}
	}
	cout<<endl;
	return 0;
}
            
            
            
        