結果

問題 No.429 CupShuffle
ユーザー chakku
提出日時 2016-10-02 23:45:26
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 120 ms
コード長 1,573 Byte
コンパイル時間 992 ms
使用メモリ 4,768 KB
最終ジャッジ日時 2020-01-01 08:15:18

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
case1.txt AC 4 ms
3,368 KB
case2.txt AC 4 ms
3,284 KB
case3.txt AC 0 ms
3,268 KB
case4.txt AC 4 ms
3,340 KB
case5.txt AC 0 ms
3,292 KB
case6.txt AC 0 ms
3,264 KB
case7.txt AC 4 ms
3,424 KB
case8.txt AC 4 ms
3,372 KB
case9.txt AC 4 ms
3,356 KB
case10.txt AC 0 ms
3,304 KB
case11.txt AC 12 ms
3,472 KB
case12.txt AC 120 ms
4,768 KB
case13.txt AC 108 ms
4,748 KB
case14.txt AC 116 ms
4,760 KB
case15.txt AC 120 ms
4,732 KB
case16.txt AC 4 ms
3,336 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