結果
問題 | No.2715 Unique Chimatagram |
ユーザー |
![]() |
提出日時 | 2024-04-05 21:39:47 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 6 ms / 2,000 ms |
コード長 | 1,416 bytes |
コンパイル時間 | 1,939 ms |
コンパイル使用メモリ | 199,108 KB |
最終ジャッジ日時 | 2025-02-20 21:02:30 |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
#include<bits/stdc++.h>using namespace std;#define pb emplace_back#define mp make_pairusing ll = long long;using pii = pair<int,int>;constexpr int mod = 998244353;constexpr int inf = 0x3f3f3f3f;constexpr int N = 2e5 + 10;string ok(int n, vector<vector<int>> &cnt, vector<int> &num){for(int i=0; i<n; ++i){int pos = (1 << 26) - 1;for(int j=0; j<n; ++j){if(i == j) continue;if(num[i] != num[j]){continue;}int diff = 0;for(int k=0; k<26; ++k){if(cnt[i][k] == cnt[j][k]) continue;++diff;}if(!diff){pos = 0;break;}if(diff > 2) continue;for(int k=0; k<26; ++k){if(cnt[i][k] + 1 == cnt[j][k]){if(pos >> k & 1){pos ^= (1 << k);break;}}}}if(!pos) continue;string ret = "";++cnt[i][__builtin_ctz(pos)];for(int j=0; j<26; ++j){while(cnt[i][j]--) ret += (char)(j + 'a');}return ret;}return "-1";}void _main(){int n;string s;cin >> n;vector<vector<int>> cnt(n, vector<int>(26, 0));vector<int> num(n, 0);for(int i=0; i<n; ++i){cin >> s;num[i] = s.length();for(char c : s) ++cnt[i][c - 'a'];}cout << ok(n, cnt, num) << '\n';}int main(){ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);_main();return 0;}