結果

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

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
case1.txt AC 4 ms
1,544 KB
case2.txt AC 3 ms
1,524 KB
case3.txt AC 3 ms
1,528 KB
case4.txt AC 4 ms
1,528 KB
case5.txt AC 5 ms
1,548 KB
case6.txt AC 3 ms
1,528 KB
case7.txt AC 5 ms
1,548 KB
case8.txt AC 4 ms
1,544 KB
case9.txt AC 3 ms
1,528 KB
case10.txt AC 4 ms
1,544 KB
case11.txt AC 15 ms
1,744 KB
case12.txt AC 113 ms
3,252 KB
case13.txt AC 111 ms
3,248 KB
case14.txt AC 115 ms
3,248 KB
case15.txt AC 114 ms
3,244 KB
case16.txt AC 4 ms
1,524 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