結果

問題 No.429 CupShuffle
ユーザー chakku
提出日時 2016-10-02 23:45:26
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 126 ms
コード長 1,573 Byte
コンパイル時間 1,232 ms
使用メモリ 3,236 KB
最終ジャッジ日時 2019-07-13 10:19:58

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
case1.txt AC 3 ms
1,528 KB
case2.txt AC 4 ms
1,512 KB
case3.txt AC 4 ms
1,512 KB
case4.txt AC 3 ms
1,512 KB
case5.txt AC 3 ms
1,528 KB
case6.txt AC 3 ms
1,508 KB
case7.txt AC 4 ms
1,528 KB
case8.txt AC 3 ms
1,528 KB
case9.txt AC 3 ms
1,508 KB
case10.txt AC 4 ms
1,532 KB
case11.txt AC 14 ms
1,736 KB
case12.txt AC 119 ms
3,236 KB
case13.txt AC 120 ms
3,236 KB
case14.txt AC 126 ms
3,232 KB
case15.txt AC 122 ms
3,232 KB
case16.txt AC 3 ms
1,512 KB
テストケース一括ダウンロード

ソースコード

diff #
#include <bits/stdc++.h>
using namespace std;

#define REP(i,n) for(int i=0;i<n;i++)
#define rep(i,n) for(int i=0;i<n;i++)
#define INF 1<<29
#define LINF LLONG_MAX/3
#define MP make_pair
#define PB push_back
#define EB emplace_back
#define ALL(v) (v).begin(),(v).end()
#define debug(x) cerr<<#x<<":"<<x<<endl
#define debug2(x,y) cerr<<#x<<","<<#y":"<<x<<","<<y<<endl
#define CININIT cin.tie(0),ios::sync_with_stdio(false)
template<typename T> ostream& operator<<(ostream& os,const vector<T>& vec){ os << "["; for(const auto& v : vec){ os << v << ","; } os << "]"; return os; }

typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;

int main(){
    int N,K,X;
    cin>>N>>K>>X;
    vector<int> cup(N);
    rep(i,N) cup[i]=i+1;
    bool f=false;
    vector<int> A,B;
    vector<int> c(N);

    rep(i,K){
        if(i!=X-1){
            int a,b;
            cin>>a>>b;
            A.push_back(a);
            B.push_back(b);
        }else{
            char aa,bb;cin>>aa>>bb;
            A.push_back('?');
            B.push_back('?');
        }
    }
    rep(i,N){
        cin >> c[i];
    }
//    debug(cup);
//    debug(c);
    for(int i=0;i<X-1;i++){
        int a=A[i];
        int b=B[i];
        swap(cup[a-1],cup[b-1]);
    }
    for(int i=K-1;i>=X;i--){
        int a=A[i];
        int b=B[i];
        swap(c[a-1],c[b-1]);
    }
//    debug(cup);
//    debug(c);
    vi v;
    for(int i=0;i<N;i++){
        if(cup[i]!=c[i]) v.push_back(i+1);
    }
    cout << v[0] << " " << v[1] << endl;
}
0