QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#225549 | #7518. GCD of Pattern Matching | PetroTarnavskyi# | WA | 127ms | 3656kb | C++17 | 1.3kb | 2023-10-24 19:35:15 | 2023-10-24 19:35:15 |
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 = 7;
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: 3540kb
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: 3656kb
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: 3532kb
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: 3584kb
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: 3592kb
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: 3624kb
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: 1ms
memory: 3592kb
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: -100
Wrong Answer
time: 127ms
memory: 3592kb
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:
wrong answer 260th numbers differ - expected: '40543655', found: '81087310'