ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#205970 | #3169. 密码 | Anthonyyan | 100 | 173ms | 21744kb | C++11 | 1.4kb | 2024-07-20 18:28:57 | 2024-07-20 20:10:01 |
answer
#include <bits/stdc++.h>
#define MAXN (1000010)
#define MOD (1932847031)
#define base (13331)
using namespace std;
char s[MAXN];
int nxt[MAXN];
long long h[MAXN];
int n;
long long power[MAXN];
int minn = INT_MAX;
int main(int argc, char const *argv[])
{
#ifndef ONLINE_JUDGE
freopen("_data.in", "r", stdin);
// freopen("_data.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> (s + 1);
n = strlen(s + 1);
power[0] = 1;
for (int i = 1; i <= n; i++)
power[i] = power[i - 1] * base % MOD;
for (int i = 1; i <= n; i++)
h[i] = ((long long)h[i - 1] * base % MOD + s[i]) % MOD;
for (int i = 1, j = 0; i < n; i++)
{
while (j > 0 && s[i + 1] != s[j + 1])
j = nxt[j];
if (s[i + 1] == s[j + 1])
j++;
nxt[i + 1] = j;
}
for (int i = n; i; i = nxt[i])
minn = min({minn, nxt[i], nxt[i]});
int cur = n;
while (cur)
{
int len = nxt[cur];
if (!len)
break;
if (len <= n - minn)
{
long long ha = h[len];
for (int i = 2; i <= n - len; i++)
{
long long num = (h[i + len - 1] - h[i - 1] * power[len] % MOD + MOD) % MOD;
if (num == ha)
{
for (int i = 1; i <= len; i++)
cout << s[i];
return 0;
}
}
}
cur = len;
}
cout << -1;
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 1212kb
input:
aaaaaaabbbabbbbabbabaaaaaabbaabbaaaaaaaaaabbbabbbbabbabaaaaaabbaabbaaaaaaaaaabbbabbbbabbabaaaaaabbaa
output:
aaaaaaabbbabbbbabbabaaaaaabbaa
result:
ok single line: 'aaaaaaabbbabbbbabbabaaaaaabbaa'
Test #2:
score: 10
Accepted
time: 0ms
memory: 1212kb
input:
aababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaaba
output:
aababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaababaaaba
result:
ok single line: 'aababaaababaaababaaababaaababa...abaaababaaababaaababaaababaaaba'
Test #3:
score: 10
Accepted
time: 0ms
memory: 1232kb
input:
yhggbzbxmpjummidyhggbzbxmpjummidyhggbzbxmpjummidyhggbzbxmpjummidyhggbzbxmpjummidyhggbzbxmpjummidyhgg...
output:
yhggbzbxmpjummidyhggbzbxmpjummidyhggbzbxmpjummidyhggbzbxmpjummidyhggbzbxmpjummidyhggbzbxmpjummidyhgg...
result:
ok single line: 'yhggbzbxmpjummidyhggbzbxmpjumm...pjummidyhggbzbxmpjummidyhggbzbx'
Test #4:
score: 10
Accepted
time: 0ms
memory: 1236kb
input:
prvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfc...
output:
prvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfcyjyeprvokxwfc...
result:
ok single line: 'prvokxwfcyjyeprvokxwfcyjyeprvo...fcyjyeprvokxwfcyjyeprvokxwfcyjy'
Test #5:
score: 10
Accepted
time: 1ms
memory: 1236kb
input:
kbnoefznwkhnwgqynrxdgdqjyijlhjyiamdcympayyezqrpsaxgoxtdfwnxurbuowqcyhlqzjgghqcpvbhoydegeefqcpmohqpep...
output:
kbnoefznwkhnwgqynrxdgdqjyijlhjyiamdcympayyezqrpsaxgoxtdfwnxurbuowqcyhlqzjgghqcpvbhoydegeefqcpmohqpep...
result:
ok single line: 'kbnoefznwkhnwgqynrxdgdqjyijlhj...ntpjpztjkkfqtcijbvnytdhyeqikcfq'
Test #6:
score: 10
Accepted
time: 59ms
memory: 21716kb
input:
crwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkd...
output:
crwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkdcsiccrwffzvkd...
result:
ok single line: 'crwffzvkdcsiccrwffzvkdcsiccrwf...csiccrwffzvkdcsiccrwffzvkdcsicc'
Test #7:
score: 10
Accepted
time: 37ms
memory: 21720kb
input:
yxwsxywxkrzlqsiwdspucezlkgshfzctbpyildxbwnmlkecqqotojgxbemfzodkrcushnizzugwuaojfqblyhlfbpqwactpcdgur...
output:
yxwsxywxkrzlqsiwdspucezlkgshfzctbpyildxbwnmlkecqqotojgxbemfzodkrcushnizzugwuaojfqblyhlfbpqwactpcdgur...
result:
ok single line: 'yxwsxywxkrzlqsiwdspucezlkgshfz...rzlqsiwdspucezlkgshfzctbpyildxb'
Test #8:
score: 10
Accepted
time: 26ms
memory: 21716kb
input:
bnlwrkorxmhhlvcpacuxjzeuuggrobdywjzqaafaamhoqebzupzyqwfcmanbuocdodaooxxuukbqevlidlspvlquwcabsylqiadv...
output:
bnlwrkorxmhhlvcpacuxjzeuuggrobdywjzqaafaamhoqebzupzyqwfcmanbuocdodaooxxuukbqevlidlspvlquwcabsylqiadv...
result:
ok single line: 'bnlwrkorxmhhlvcpacuxjzeuuggrob...mhhlvcpacuxjzeuuggrobdywjzqaafa'
Test #9:
score: 10
Accepted
time: 20ms
memory: 21744kb
input:
sqomhzwerrhbmqvtukrgmkxrbgfrwdsrrkqwwxugmhzfgkjtzgpzaqbtworlitprwutprgamridxmnrzjkwnvlotnkscgqcbsnjs...
output:
-1
result:
ok single line: '-1'
Test #10:
score: 10
Accepted
time: 30ms
memory: 21716kb
input:
qtkmtpbygecktzwbjnfhkixcaikrrbwrblidemsjdvojwnctrlkvcvuvdppudyjlstpulczgiofeuuypedxsktxhpzofouwrzfjj...
output:
qtkmtpbygecktzwbjnfhkixcaikrrbwrblidemsjdvojwnctrlkvcvuvdppudyjlstpulczgiofeuuypedxsktxhpzofouwrzfjj...
result:
ok single line: 'qtkmtpbygecktzwbjnfhkixcaikrrb...crqfygiiennmbvsutqtfgvvrwlocprl'
Extra Test:
score: 0
Extra Test Passed