Submission #34755826
Source Code Expand
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cassert>
#include <iostream>
#include <sstream>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <utility>
#include <numeric>
#include <algorithm>
#include <bitset>
#include <complex>
#include <array>
#include <list>
#include <stack>
#include <valarray>
using namespace std;
typedef unsigned uint;
typedef long long Int;
typedef unsigned long long UInt;
const int INF = 1001001001;
const Int INFLL = 1001001001001001001LL;
template <typename T>
void pv(T a, T b)
{
for (T i = a; i != b; ++i)
cout << *i << " ";
cout << endl;
}
template <typename T>
void chmin(T &a, T b)
{
if (a > b)
a = b;
}
template <typename T>
void chmax(T &a, T b)
{
if (a < b)
a = b;
}
int in()
{
int x;
scanf("%d", &x);
return x;
}
double fin()
{
double x;
scanf("%lf", &x);
return x;
}
Int lin()
{
Int x;
scanf("%lld", &x);
return x;
}
const int MAX = 16 * 100050;
int link[MAX][27], nodes = 1;
int ac[MAX];
void add(string s)
{
int p = 0;
for (int i = 0; i < (int)s.length(); ++i)
{
const int c = s[i] == '_' ? 26 : s[i] - 'a';
if (link[p][c] == -1)
{
link[p][c] = nodes++;
ac[nodes - 1] = 0;
}
p = link[p][c];
}
ac[p] = 1;
}
bool match(string s)
{
int p = 0;
for (int i = 0; i < (int)s.size(); ++i)
{
const int c = s[i] == '_' ? 26 : s[i] - 'a';
p = link[p][c];
if (p == -1)
return false;
}
return ac[p] == 1;
}
vector<string> S;
void search(int u, string s)
{
if (s.length() >= 3 && u == (1 << (int)S.size()) - 1 && !match(s))
{
cout << s << endl;
exit(0);
}
for (int i = 0; i < (int)S.size(); ++i)
{
if (u & (1 << i))
{
continue;
}
int us = u == 0 ? 0 : 1;
while (s.length() + us + S[i].length() <= 16)
{
string ss = s + string(us, '_') + S[i];
search(u | (1 << i), ss);
if (u == 0)
break;
++us;
}
}
}
int main()
{
for (int i = 0; i < MAX; ++i)
{
fill(link[i], link[i] + 27, -1);
}
int N = in();
int M = in();
S.resize(N);
for (int i = 0; i < N; ++i)
{
cin >> S[i];
}
for (int i = 0; i < M; ++i)
{
string t;
cin >> t;
add(t);
}
search(0, "");
cout << -1 << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Unique Username |
| User | japlj |
| Language | C++ (GCC 9.2.1) |
| Score | 400 |
| Code Size | 2467 Byte |
| Status | AC |
| Exec Time | 702 ms |
| Memory | 175128 KiB |
Compile Error
./Main.cpp: In function ‘int in()’:
./Main.cpp:53:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
53 | scanf("%d", &x);
| ~~~~~^~~~~~~~~~
./Main.cpp: In function ‘double fin()’:
./Main.cpp:59:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
59 | scanf("%lf", &x);
| ~~~~~^~~~~~~~~~~
./Main.cpp: In function ‘Int lin()’:
./Main.cpp:65:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
65 | scanf("%lld", &x);
| ~~~~~^~~~~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_one_00.txt, 01_one_01.txt, 01_one_02.txt, 01_one_03.txt, 01_one_04.txt, 01_one_05.txt, 02_case_00.txt, 02_case_01.txt, 02_case_02.txt, 02_case_03.txt, 02_case_04.txt, 02_case_05.txt, 02_case_06.txt, 02_case_07.txt, 02_case_08.txt, 02_case_09.txt, 02_case_10.txt, 02_case_11.txt, 02_case_12.txt, 02_case_13.txt, 02_case_14.txt, 02_case_15.txt, 02_case_16.txt, 02_case_17.txt, 03_eight_00.txt, 03_eight_01.txt, 03_eight_02.txt, 03_eight_03.txt, 03_eight_04.txt, 03_eight_05.txt, 04_corner_00.txt, 04_corner_01.txt, 04_corner_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 119 ms | 172512 KiB |
| 00_sample_01.txt | AC | 116 ms | 172492 KiB |
| 00_sample_02.txt | AC | 115 ms | 172480 KiB |
| 00_sample_03.txt | AC | 120 ms | 172464 KiB |
| 01_one_00.txt | AC | 116 ms | 172452 KiB |
| 01_one_01.txt | AC | 118 ms | 172516 KiB |
| 01_one_02.txt | AC | 117 ms | 172448 KiB |
| 01_one_03.txt | AC | 117 ms | 172512 KiB |
| 01_one_04.txt | AC | 118 ms | 172504 KiB |
| 01_one_05.txt | AC | 118 ms | 172376 KiB |
| 02_case_00.txt | AC | 157 ms | 174976 KiB |
| 02_case_01.txt | AC | 160 ms | 175108 KiB |
| 02_case_02.txt | AC | 161 ms | 175116 KiB |
| 02_case_03.txt | AC | 161 ms | 175076 KiB |
| 02_case_04.txt | AC | 164 ms | 175108 KiB |
| 02_case_05.txt | AC | 160 ms | 175128 KiB |
| 02_case_06.txt | AC | 163 ms | 174904 KiB |
| 02_case_07.txt | AC | 162 ms | 174984 KiB |
| 02_case_08.txt | AC | 160 ms | 175060 KiB |
| 02_case_09.txt | AC | 190 ms | 174392 KiB |
| 02_case_10.txt | AC | 163 ms | 175000 KiB |
| 02_case_11.txt | AC | 161 ms | 175116 KiB |
| 02_case_12.txt | AC | 193 ms | 173888 KiB |
| 02_case_13.txt | AC | 181 ms | 174680 KiB |
| 02_case_14.txt | AC | 161 ms | 174988 KiB |
| 02_case_15.txt | AC | 202 ms | 174408 KiB |
| 02_case_16.txt | AC | 197 ms | 174068 KiB |
| 02_case_17.txt | AC | 191 ms | 175080 KiB |
| 03_eight_00.txt | AC | 189 ms | 174564 KiB |
| 03_eight_01.txt | AC | 189 ms | 174632 KiB |
| 03_eight_02.txt | AC | 190 ms | 174488 KiB |
| 03_eight_03.txt | AC | 649 ms | 174848 KiB |
| 03_eight_04.txt | AC | 702 ms | 174820 KiB |
| 03_eight_05.txt | AC | 517 ms | 174732 KiB |
| 04_corner_00.txt | AC | 118 ms | 172480 KiB |
| 04_corner_01.txt | AC | 117 ms | 172448 KiB |
| 04_corner_02.txt | AC | 120 ms | 172492 KiB |