QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#94926#6128. Flippy SequenceGeorge_Plover#AC ✓128ms5472kbC++141.0kb2023-04-08 12:38:152023-04-08 12:38:17

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-08 12:38:17]
  • 评测
  • 测评结果:AC
  • 用时:128ms
  • 内存:5472kb
  • [2023-04-08 12:38:15]
  • 提交

answer

#include <map>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

#define MAXN 1100000
using namespace std;
int T,n;
map<int,int> S;
char s[MAXN],t[MAXN];
int main(){
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        scanf("%s%s",s,t);
        S.clear();
        int l,j=0;
        for(int i=0;i<n;i++){
            if(s[i]!=t[i]){
                if(!j){
                    j=1;
                    l=i;
                }
            }
            else{
                if(j){
                    S[l]=i-1;
                    j=0;
                }
            }
            if(S.size()==3)break;
        }
        if(j){
            S[l]=n-1;
        }
        if(S.size()>=3){
            puts("0");
        }
        else if(S.size()==0){
            printf("%lld\n",1ll*n*(n+1)/2);
        }
        else if(S.size()==1){
            printf("%lld\n",2ll*(n-1));
        }
        else{
            printf("6\n");
        }
    }
    return 0;
}

詳細信息

Test #1:

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

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: 0
Accepted
time: 128ms
memory: 5472kb

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:

1
0
3
2
2
2
6
4
4
4
4
6
4
4
10
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
15
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
21
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
28
12
12
12
12
6
12
12
1...

result:

ok 126648 numbers