提出 #38070239


ソースコード 拡げる

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define fbo find_by_order
#define ook order_of_key

typedef long long ll;
typedef pair<ll,ll> ii;
typedef vector<int> vi;
typedef long double ld;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;

const long long MOD = 998244353;
const long long INF = LLONG_MAX;

int findID(string s){
    ll id = 0;
    ll count = 1;
    for(int i=s.length()-1;i>=0;i--){
        char c=s[i];
        int k = int(c-'a');
        k+=1;
        id+=count*k;
        count*=26;
    }
    return id;
}

int main(){
    //ios_base::sync_with_stdio(0); cin.tie(0);
    // #ifdef LOCALa
    // freopen("input.txt", "r" , stdin);
    // freopen("output.txt", "w", stdout);
    // #endif
    
    int n;
    cin>>n;
    map<ll,ll> m;
    map<ll,int> visited;
    map<ll,int> checked;
    for(int i=0;i<n;i++){
        string s,t;
        cin>>s>>t;
        ll sid = findID(s);
        ll tid = findID(t);
        m[sid]=tid;
        visited[sid]=0;
        visited[tid]=0;
    }

    for(auto i : m){
        ll s = i.fi;
        ll t = i.se;
        if(checked[s]==1){
            continue;
        }
        if(t!=0 && visited[t]==1){
            // cout<<"CASE1"<<endl;
            cout<<"No"<<endl;
            return 0;
        }
        while(visited[t]==0){
            if(checked[t]==1) break;
            checked[s]=1;
            visited[t]=1;
            s=t;
            t=m[s];
            if(t!=0 && visited[t]==1){
                // cout<<"CASE2"<<endl;
                // cout<<s<<' '<<t<<endl;
                cout<<"No"<<endl;
                return 0;
            }
        }
    }
    cout<<"Yes"<<endl;
    return 0;
}

提出情報

提出日時
問題 D - Change Usernames
ユーザ jingren1021
言語 C++ (GCC 9.2.1)
得点 0
コード長 1978 Byte
結果 WA
実行時間 510 ms
メモリ 40980 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 400
結果
AC × 2
WA × 1
AC × 11
WA × 11
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
random_01.txt AC 510 ms 40980 KiB
random_02.txt WA 422 ms 35672 KiB
random_03.txt AC 262 ms 22368 KiB
random_04.txt AC 377 ms 22288 KiB
random_05.txt WA 239 ms 22348 KiB
random_06.txt WA 331 ms 22312 KiB
random_07.txt WA 232 ms 22224 KiB
random_08.txt WA 305 ms 22188 KiB
random_09.txt WA 372 ms 22408 KiB
random_10.txt AC 336 ms 23800 KiB
random_11.txt WA 212 ms 20996 KiB
random_12.txt AC 345 ms 28564 KiB
random_13.txt AC 356 ms 29872 KiB
random_14.txt AC 279 ms 21864 KiB
random_15.txt AC 323 ms 23600 KiB
random_16.txt WA 391 ms 26512 KiB
random_17.txt WA 286 ms 23856 KiB
random_18.txt WA 423 ms 30020 KiB
random_19.txt AC 2 ms 3476 KiB
sample_01.txt AC 2 ms 3400 KiB
sample_02.txt WA 2 ms 3540 KiB
sample_03.txt AC 3 ms 3548 KiB