結果

問題 No.233 めぐるはめぐる (3)
ユーザー imulanimulan
提出日時 2016-12-10 19:05:12
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 198 ms / 1,000 ms
コード長 1,326 bytes
コンパイル時間 1,999 ms
コンパイル使用メモリ 176,688 KB
実行使用メモリ 13,440 KB
最終ジャッジ日時 2024-05-06 17:40:16
合計ジャッジ時間 6,666 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 118 ms
13,184 KB
testcase_01 AC 64 ms
9,728 KB
testcase_02 AC 26 ms
6,944 KB
testcase_03 AC 76 ms
10,496 KB
testcase_04 AC 198 ms
13,440 KB
testcase_05 AC 140 ms
13,440 KB
testcase_06 AC 145 ms
13,440 KB
testcase_07 AC 119 ms
13,440 KB
testcase_08 AC 120 ms
13,440 KB
testcase_09 AC 2 ms
6,940 KB
testcase_10 AC 2 ms
6,940 KB
testcase_11 AC 2 ms
6,944 KB
testcase_12 AC 70 ms
9,728 KB
testcase_13 AC 116 ms
13,440 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
#define each(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); ++itr)
#define all(x) (x).begin(),(x).end()
#define pb push_back
#define fi first
#define se second

string solve()
{
    int n;
    set<string> s;
    cin >>n;
    rep(i,n)
    {
        string used;
        cin >>used;
        s.insert(used);
    }

    if(n>=129600) return "NO";

    string x="bgmnr", y="aaeiuu";
    do{
        rep(i,6)
        {
            string z="";
            char sel=y[i];
            rep(j,6)if(j!=i) z+=y[j];

            do{
                // sel として選んだ母音を入れる位置
                rep(j,6)
                {
                    string name="";
                    if(j==0) name+=sel;
                    rep(k,5)
                    {
                        name+=x[k];
                        name+=z[k];
                        if(j==k+1) name+=sel;
                    }

                    if(s.find(name) == s.end()) return name;
                }
            }while(next_permutation(all(z)));
        }
    }while(next_permutation(all(x)));

    return "NO";
}

int main()
{
    cin.tie(0);ios::sync_with_stdio(false);
    cout << solve() << '\n';
    return 0;
}
0