QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#671959#7518. GCD of Pattern MatchingForever_Young#WA 0ms3856kbC++23903b2024-10-24 15:08:202024-10-24 15:08:21

Judging History

你现在查看的是最新测评结果

  • [2024-10-24 15:08:21]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3856kb
  • [2024-10-24 15:08:20]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=1;i<=n;i++)
#define pb push_back
#define mp make_pair
#define data dataa
using LL=long long;
using ULL=unsigned long long;
using LD=long double;
int main()
{
    int T;
    for(scanf("%d",&T);T--;)
    {
        int m;
        char p[20];
        scanf("%d%s",&m,p+1);
        int n=strlen(p+1);
        ULL pw[20];
        pw[0]=1;
        rep(i,n-1)pw[i]=pw[i-1]*m;
        map<char,ULL>dic;
        rep(i,n)dic[p[i]]+=pw[n-i];
        ULL a[20];
        int cnt=0;
        a[cnt=1]=dic[p[1]];
        ULL ans=a[1];
        for(auto [x,y]:dic)
        {
            if(x==p[1])continue;
            a[++cnt]=y;
            ans+=y*(cnt==2?0:cnt-1);
        }
        sort(a+1,a+cnt+1);
        for(int i=2;i<=cnt;i++)ans=gcd(ans,a[i]-a[1]);
        printf("%llu\n",ans);
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3856kb

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: -100
Wrong Answer
time: 0ms
memory: 3728kb

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:

1
1
3
2
5
3
7
4
9
5
11
6
13
7
15
1
1
3
3
5
15
3
1
3
15
5
3
3
1
15

result:

wrong answer 1st numbers differ - expected: '2', found: '1'