QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#225550 | #7518. GCD of Pattern Matching | PetroTarnavskyi | WA | 309ms | 3888kb | C++17 | 1.3kb | 2023-10-24 19:35:28 | 2023-10-24 19:35:28 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define RFOR(i, a, b) for(int i = (a) - 1; i >= (b); i--)
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define F first
#define S second
typedef long long LL;
typedef unsigned long long ULL;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef double db;
mt19937 rng(7447);
const int N = 256;
int mp[N];
void solve()
{
int m;
string s;
cin >> m >> s;
VI v(m);
iota(ALL(v), 0);
vector<ULL> pw(SZ(s));
pw.back() = 1;
RFOR (i, SZ(s) - 1, 0)
pw[i] = pw[i + 1] * m;
int MAGIC = 27;
ULL g = 0;
int cnt = 0;
FOR (iter, 0, 74)
{
shuffle(ALL(v), rng);
if (v[0] == 0)
continue;
ULL x = 0;
int idx = 0;
FOR (i, 0, SZ(s))
{
int id = s[i] - 'a';
if (mp[id] == -1)
mp[id] = v[idx++];
x += pw[i] * mp[id];
}
ULL g2 = __gcd(g, x);
FOR (i, 0, SZ(s))
mp[s[i] - 'a'] = -1;
if (g2 == g)
cnt++;
else
{
g = g2;
cnt = 0;
}
if (cnt == MAGIC)
break;
}
cout << g << '\n';
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout << fixed << setprecision(15);
fill(mp, mp + N, -1);
int t;
cin >> t;
while (t--)
{
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3844kb
input:
5 10 ccpcccpc 10 cpcpcp 10 cpc 4 cpccpc 4 dhcp
output:
10001 10101 1 65 3
result:
ok 5 number(s): "10001 10101 1 65 3"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
30 2 ab 3 abc 4 abcd 5 abcde 6 abcdef 7 abcdefg 8 abcdefgh 9 abcdefghi 10 abcdefghij 11 abcdefghijk 12 abcdefghijkl 13 abcdefghijklm 14 abcdefghijklmn 15 abcdefghijklmno 16 abcdefghijklmnop 16 a 16 ab 16 abc 16 abcd 16 abcde 16 abcdef 16 abcdefg 16 abcdefgh 16 abcdefghi 16 abcdefghij 16 abcdefghijk ...
output:
2 1 3 2 5 3 7 4 9 5 11 6 13 7 15 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
result:
ok 30 numbers
Test #3:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
12 10 abccbaabc 10 abcdeedcba 10 abccbaabccba 3 abccbaabccba 4 abcddcba 4 abcddcbaabcddcba 5 online 5 onlie 6 online 3 ccc 10 ccc 16 aaaaaaaaaaaaaaaa
output:
3 11 11000011 2920 15 983055 1 2 1 13 111 1229782938247303441
result:
ok 12 numbers
Test #4:
score: 0
Accepted
time: 0ms
memory: 3888kb
input:
21 13 abcccbbaccca 11 abcdcdeebdcdca 15 abcdcdeebdcdca 11 abcdcdeebdcacd 15 abcdcdeebdcacd 12 abcdcdeebbae 14 abcbadcbabcd 14 abcbaccbacbb 14 aaaaaabaabbab 10 aaaaabaababbb 9 aaaaabaababb 14 aaaaabaabbaba 10 aaaaabbaabaab 11 aaaaabbabbaabb 14 aaaababbbbbaba 12 aaaabbababbb 12 aaabaabbabab 13 aabaaab...
output:
183 4 4 4 4 1 38221 183 1 1 820 1 1 12 24326193 145 133 157 1064 1 145
result:
ok 21 numbers
Test #5:
score: 0
Accepted
time: 0ms
memory: 3648kb
input:
21 13 acccabbcccba 11 acdcdbeedcdcba 15 acdcdbeedcdcba 11 dcacdbeedcdcba 15 dcacdbeedcdcba 12 eabbeedcdcba 14 dcbabcdabcba 14 bbcabccabcba 14 babbaabaaaaaa 10 bbbabaabaaaaa 9 bbabaabaaaaa 14 ababbaabaaaaa 10 baabaabbaaaaa 11 bbaabbabbaaaaa 14 ababbbbbabaaaa 12 bbbababbaaaa 12 bababbaabaaa 13 bbababa...
output:
915 4 4 4 4 5 38221 183 157 79 5740 157 79 516 24326193 1015 665 785 1064 11 1015
result:
ok 21 numbers
Test #6:
score: 0
Accepted
time: 1ms
memory: 3848kb
input:
96 15 abbbcaacccba 16 cabacaabbccba 16 bcbbaaccabcba 16 bbccaacbabcba 16 bcbabbccaacba 16 abcacbcaccbba 16 accabcbabcbba 15 ccaaabccbbba 15 bbaaabbbbbba 16 abababbbbba 11 abbaabaabbbbba 16 ababbaaabbbbba 16 abbbaaaabbbbba 11 bababaababbbba 11 bababaabbbba 12 aababaabbbba 15 bbaaabbbba 16 aaaabbaaabb...
output:
416 157 157 157 157 157 157 416 416 89 516 1921 731 86 117 1015 176 731 187 665 2011170 516 785 2989355 40543655 63 67 731 731 86 1921 176 1357265 416 1015 416 416 176 785 731 1357265 516 86 63 1015 117 86 516 731 67 665 187 1921 86 516 516 86 665 63 785 187 2011170 1921 89 117 665 2989355 40543655 ...
result:
ok 96 numbers
Test #7:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
96 15 abcccaacbbba 16 abccbbaacabac 16 abcbaccaabbcb 16 abcbabcaaccbb 16 abcaaccbbabcb 16 abbccacbcacba 16 abbcbabcbacca 15 abbbccbaaacc 15 abbbbbbaaabb 16 abbbbbababa 11 abbbbbaabaabba 16 abbbbbaaabbaba 16 abbbbbaaaabbba 11 abbbbabaababab 11 abbbbaababab 12 abbbbaababaa 15 abbbbaaabb 16 abbbbaaabba...
output:
32 1 1 1 1 1 1 32 32 1 12 17 17 2 3 145 16 17 17 133 402234 12 157 2989355 40543655 3 1 17 17 2 17 16 271453 32 145 32 32 16 157 17 271453 12 2 3 145 3 2 12 17 1 133 17 17 2 12 12 2 133 3 157 17 402234 17 1 3 133 2989355 40543655 1 3 145 1 3 157 1 17 3 133 1 2989355 40543655 157 1 3 3 1 157 145 1 3 ...
result:
ok 96 numbers
Test #8:
score: 0
Accepted
time: 309ms
memory: 3648kb
input:
100000 15 abbbcaacccba 16 cabacaabbccba 16 bcbbaaccabcba 16 bbccaacbabcba 16 bcbabbccaacba 16 abcacbcaccbba 16 accabcbabcbba 15 ccaaabccbbba 15 bbaaabbbbbba 16 abababbbbba 11 abbaabaabbbbba 16 ababbaaabbbbba 16 abbbaaaabbbbba 11 bababaababbbba 11 bababaabbbba 12 aababaabbbba 15 bbaaabbbba 16 aaaabba...
output:
416 157 157 157 157 157 157 416 416 89 516 1921 731 86 117 1015 176 731 187 665 2011170 516 785 2989355 40543655 63 67 731 731 86 1921 176 1357265 416 1015 416 416 176 785 731 1357265 516 86 63 1015 117 86 516 731 67 665 187 1921 86 516 516 86 665 63 785 187 2011170 1921 89 117 665 2989355 40543655 ...
result:
ok 100000 numbers
Test #9:
score: 0
Accepted
time: 0ms
memory: 3656kb
input:
22 15 dacbcbdddaddcba 15 bacdcdddbaddcba 15 bdedacaebecdcba 15 bdddacadbdcdcba 15 baaadcaabdcdcba 15 bdcdacacbccdcba 16 acccacddbbcdcba 16 acaccaddbbcdcba 15 bdbdacabbbcdcba 15 badddcddbacdcba 15 bdadacaabacdcba 15 abcddadddbcbcad 15 abcddabdddcdcab 15 abcdcebeacadedb 15 abcdcdbdacadddb 15 abcdcdbaa...
output:
2651 2651 2651 2651 2651 2651 3003 77 2651 2651 2651 241 241 241 241 241 241 273 1 241 241 241
result:
ok 22 numbers
Test #10:
score: 0
Accepted
time: 1ms
memory: 3600kb
input:
237 12 aaaaaaaa 12 aaaaaaaaa 4 aaaaaaaaaa 13 aaaaaaaaaaa 16 aaaaaaaaaaaa 6 aaaaaaaaaaaaa 6 aaaaaaaaaaaaaa 14 aaaababbbbbaba 14 aaaabbabba 8 aaabaabbbaa 4 aaabaabbbaabba 11 aaabababaaaa 7 aaabababbabbaa 16 aaabbabaabbbaa 3 aaabbbaaba 7 aaabbbaabaaa 11 aaabbbbabbaa 5 aaabbbbbbaaa 8 aabaabbababa 7 aaba...
output:
39089245 469070941 349525 149346699503 18764998447377 2612138803 15672832819 24326193 75 89 145 14763 58 1921 44 208 156 3906 285 312 13 30583 70 16 29 468799645 58593 55 113 65 13 29 43 203 665 46873 1460 232 21 2343 65 516 73015558161 2380 51 32 1555 187245 53 35 116 1015 52 2121 285212689 78 4156...
result:
ok 237 numbers
Test #11:
score: -100
Wrong Answer
time: 91ms
memory: 3592kb
input:
30580 14 aaababbbbbaa 14 bccaaccccbaa 6 ccaacbabbbbbbcba 11 bedadacba 8 dgfceaedabcbaa 13 ebdeeabcdcba 15 aabacacaacccccba 3 aababaaaaababaaa 16 acbbabbbbccba 16 accbacbcccba 15 feddcbafeddcba 13 baaaacacabcbaa 9 dcbaaaaadcbdcba 7 bbbbabbbba 15 acdddbbaccba 5 cacbaabcaaabacba 16 dabadcbcdcba 7 babab...
output:
197 45 9079 1 1 5 17 65620 53 3 170859376 29 31 16808 241 204 65793 2 117650 2651 1 7568149 248833 1 513 3 1285 3003 19136585 11 1 1 17 1 77 2 3 2 58 1111 82 22049 62 328 13 20 32045 244 33 1 65 1 1000001 1 3003 1 3003 290730444229 1 1 1885 1 7 823544 50401 93 1 116 14065 532171 1475827473 183 78 1 ...
result:
wrong answer 8957th numbers differ - expected: '11', found: '22'