QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#96934#6128. Flippy SequencezhuozhuoWA 91ms13292kbC++141.6kb2023-04-15 19:40:562023-04-15 19:40:57

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-04-15 19:40:57]
  • 评测
  • 测评结果:WA
  • 用时:91ms
  • 内存:13292kb
  • [2023-04-15 19:40:56]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define N 1000010
int same[N];
char s1[N],s2[N];
signed main()
{
    int t;cin>>t;
    while(t--)
    {
        int n;scanf("%lld",&n);
        scanf("%s%s",s1,s2);
        //string s1,s2;cin>>s1>>s2;
        if(s1==s2) {printf("%lld\n",n*(n+1)/2);continue;}
        if(n==1&&s1!=s2) {puts("0");continue;}
        for(int i=0;i<n;i++)
        {
            if(s1[i]==s2[i]) same[i]=1;
            else same[i]=0;
        }
        int res=0;
        int cnt=0,flag=0,flag1=0,end=0,flag2=0;//记录不同区间的个数,是否出现不同
        int l1=0,r1=0,l2=0,r2=0;
        //找区间数量
        for(int i=0;i<n;i++)
        {
            if(!flag&&!same[i]) {flag=1;cnt++;}
            else if(flag&&!same[i]) ;
            else if(flag&&same[i]) flag=0;
        }
        if(cnt>2) {puts("0");continue;}
        // for(int i=0;i<n;i++)
        // {
            // if(!flag1&&!end&&!same[i]) {flag1=1;l1=i;r1=i;}
            // else if(flag1&&!same[i]) r1++;
            // else if(flag1&&same[i]) {flag1=0;end=1;r1=i-1;}

            // if(end&&!flag2&&!same[i])
            // {
                // flag2=1;l2=r2=i;
            // }
            // else if(flag2&&!same[i]) r2++;
            // else if(flag2&&same[i]) {flag2=0;r2=i-1;}
        // }
        if(cnt==1)//只有一个区间
        {
            //cout<<(n-1)*2<<endl;
            printf("%lld\n",(n-1)*2);
        }
        if(cnt==2)//有两个区间
        {
            //cout<<4+(l2-r1-1)*2<<endl;
            puts("6");
        }
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 5576kb

input:

3
1
1
0
2
00
11
5
01010
00111

output:

0
2
6

result:

ok 3 number(s): "0 2 6"

Test #2:

score: -100
Wrong Answer
time: 91ms
memory: 13292kb

input:

126648
1
0
0
1
1
0
2
01
01
2
01
11
2
10
11
2
11
00
3
011
011
3
010
110
3
011
001
3
111
001
3
001
000
3
101
000
3
011
000
3
111
000
4
1111
1111
4
1110
0110
4
0010
0110
4
1011
0111
4
1001
1011
4
0100
1110
4
0000
0110
4
0111
1001
4
1001
1000
4
1011
0010
4
0001
0100
4
1000
0101
4
0100
0111
4
1101
0110
4...

output:

0
0
2
2
2
4
4
4
4
6
4
4
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
8
8
8
8
6
8
8
8
6
6
6
8
6
8
8
8
6
6
6
6
0
6
6
8
6
6
6
8
6
8
8
10
10
10
10
6
10
10
10
6
6
6
10
6
10
10
10
6
6
6
6
0
6
6
10
6
6
6
10
6
10
10
10
6
6
6
6
0
6
6
6
0
0
0
6
0
6
6
10
6
6
6
6
0
6
6
10
6
6
6
10
6
10
10
12
12
12
12
6
12
12
12
6
6
6
12
6
12
...

result:

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