結果
問題 | No.233 めぐるはめぐる (3) |
ユーザー | tancahn2380 |
提出日時 | 2018-12-31 11:47:01 |
言語 | C++11 (gcc 11.4.0) |
結果 |
AC
|
実行時間 | 396 ms / 1,000 ms |
コード長 | 2,566 bytes |
コンパイル時間 | 1,903 ms |
コンパイル使用メモリ | 179,200 KB |
実行使用メモリ | 27,500 KB |
最終ジャッジ日時 | 2024-10-12 01:42:34 |
合計ジャッジ時間 | 9,137 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 375 ms
26,492 KB |
testcase_01 | AC | 356 ms
26,988 KB |
testcase_02 | AC | 344 ms
26,724 KB |
testcase_03 | AC | 360 ms
27,040 KB |
testcase_04 | AC | 380 ms
26,516 KB |
testcase_05 | AC | 396 ms
26,492 KB |
testcase_06 | AC | 386 ms
26,412 KB |
testcase_07 | AC | 373 ms
26,056 KB |
testcase_08 | AC | 374 ms
26,260 KB |
testcase_09 | AC | 323 ms
26,388 KB |
testcase_10 | AC | 333 ms
26,328 KB |
testcase_11 | AC | 5 ms
9,696 KB |
testcase_12 | AC | 355 ms
27,500 KB |
testcase_13 | AC | 381 ms
26,168 KB |
ソースコード
# include "bits/stdc++.h" using namespace std; using LL = long long; using ULL = unsigned long long; const double PI = acos(-1); template<class T>constexpr T INF() { return ::std::numeric_limits<T>::max(); } template<class T>constexpr T HINF() { return INF<T>() / 2; } template <typename T_char>T_char TL(T_char cX) { return tolower(cX); }; template <typename T_char>T_char TU(T_char cX) { return toupper(cX); }; typedef pair<LL, LL> pii; const int vy[] = { -1, -1, -1, 0, 1, 1, 1, 0 }, vx[] = { -1, 0, 1, 1, 1, 0, -1, -1 }; const int dx[4] = { 0,1,0,-1 }, dy[4] = { 1,0,-1,0 }; int popcnt(unsigned long long n) { int cnt = 0; for (int i = 0; i < 64; i++)if ((n >> i) & 1)cnt++; return cnt; } int d_sum(LL n) { int ret = 0; while (n > 0) { ret += n % 10; n /= 10; }return ret; } int d_cnt(LL n) { int ret = 0; while (n > 0) { ret++; n /= 10; }return ret; } LL gcd(LL a, LL b) { if (b == 0)return a; return gcd(b, a%b); }; LL lcm(LL a, LL b) { LL g = gcd(a, b); return a / g*b; }; # define ALL(qpqpq) (qpqpq).begin(),(qpqpq).end() # define UNIQUE(wpwpw) sort(ALL((wpwpw)));(wpwpw).erase(unique(ALL((wpwpw))),(wpwpw).end()) # define LOWER(epepe) transform(ALL((epepe)),(epepe).begin(),TL<char>) # define UPPER(rprpr) transform(ALL((rprpr)),(rprpr).begin(),TU<char>) # define FOR(i,tptpt,ypypy) for(LL i=(tptpt);i<(ypypy);i++) # define REP(i,upupu) FOR(i,0,upupu) # define INIT std::ios::sync_with_stdio(false);std::cin.tie(0) vector<int> v = {0, 1, 2, 3, 4, 5}; string vs = "iaaeuu"; vector<int> v2 = {0, 1, 2, 3, 4, 5}; string v2s = "nbmgr\0"; int n; string s[202020]; vector<string> t; int main(){ INIT; cin >> n; REP(i, n){ cin >> s[i]; } if(n == 0){ cout << "inabameguru" << endl; return 0; } sort(s, s + n); do{ do{ string ss = ""; ss = ss + (char)v2s[v[0]] + (char)vs[v2[0]] + (char)v2s[v[1]] + (char)vs[v2[1]] + (char)v2s[v[2]] + (char)vs[v2[2]] + (char)v2s[v[3]] + (char)vs[v2[3]] + (char)v2s[v[4]] + (char)vs[v2[4]] + (char)v2s[v[5]] + (char)vs[v2[5]]; string sss = ""; REP(i,(int)ss.size())if(ss[i] != '\0')sss += ss[i]; t.emplace_back(sss); }while(next_permutation(ALL(v2))); }while(next_permutation(ALL(v))); sort(ALL(t)); UNIQUE(t); REP(i, n){ if(s[i] != t[i]){ cout << t[i] << endl; return 0; } } if(n != 129600){ cout << t[n] << endl; return 0; } cout << "NO" << endl; }