結果
問題 |
No.3196 Unique Nickname
|
ユーザー |
|
提出日時 | 2025-08-21 17:24:10 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,575 bytes |
コンパイル時間 | 2,416 ms |
コンパイル使用メモリ | 209,872 KB |
実行使用メモリ | 7,720 KB |
最終ジャッジ日時 | 2025-08-21 17:24:14 |
合計ジャッジ時間 | 2,830 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 9 WA * 11 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i,n) for (int i = 0; i< (n); ++i) #define repi(i, a, b) for (int i = (a); i < (b); ++i) #define all(x) (x).begin(), (x).end() #define fore(i, a) for(auto &i:a) using ll = long long; //https://yukicoder.me/problems/no/3196 //b:999999797, 999999883, 1000000007, 1000000009, 2147483647, 2147771771 struct roling_hash{ vector<ll> H, B; ll n, b, mod; string s; roling_hash(string s_,ll b_, ll mod_){ s = s_;b = b_; mod = mod_; n = s.size()+1; H.assign(n,0); B.assign(n,0); H[0] = 0; B[0] = 1; repi(i, 1, n){ H[i] = (b*H[i-1]%mod+s[i-1])%mod; B[i] = B[i-1]*b%mod; } } ll get_hash(ll l,ll r){ return (H[r+1] - B[r-l+1]*H[l]%mod+mod)%mod; } ll get_hash(string t){ ll res=0; ll sz = t.size(); rep(i, sz){ res += B[sz-1-i]*t[i]%mod; res %= mod; } return res; } }; long long random_large_ll(ll m, ll M) { static std::random_device rd; static std::mt19937_64 gen(rd()); std::uniform_int_distribution<long long> dist(m, M); return dist(gen); } int main() { ll n; cin >> n; map<ll,ll> id; vector<ll> s(n), t(n); roling_hash RH("_", 233123, 1000000007); bool flag = true; rep(i, n){ string a, b; cin >> a >> b; s[i] = RH.get_hash(a); t[i] = RH.get_hash(b); if(id.count(s[i]))id[s[i]]++; else id[s[i]] = 1; if(id.count(t[i]))id[t[i]]++; else id[t[i]] = 1; } rep(i, n){ if(id[s[i]] > 1 && id[t[i]] > 1)flag = false; } if(flag)cout << "Yes" << endl; else cout << "No" << endl; }