QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#583882#8832. Daily Disinfectiontusiliang2024WA 6ms3572kbC++141012b2024-09-22 23:30:062024-09-22 23:30:07

Judging History

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

  • [2024-09-22 23:30:07]
  • 评测
  • 测评结果:WA
  • 用时:6ms
  • 内存:3572kb
  • [2024-09-22 23:30:06]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(void)
{
	int t;
	cin>>t;
	while(t--){
		int n;
		string s;
		cin>>n>>s;
		int a[n+1],ans=0;
		for(int i=1;i<=n;i++){
			a[i]=s[i-1]-'0';
			if(a[i]==1) ans++;
		}
		int num1=0,num2=0;
		if(a[1]==1&&a[n]==1){
			for(int i=1;i<=n;i++){
				if(a[i]==1) num1++;
				else{
					if(i<=n-1&&a[i+1]==0) num1=0;
					break;
				}
			}
			for(int i=n;i>=1;i--){
				if(a[i]==1) num2++;
				else{
					if(i>=2&&a[i-1]==0) num2=0;
					break;
				}
			}
		}
		int posl,posr,minn=n,tag=0,cnt=0;
		for(int i=1;i<=n;i++){
			if(a[i]==1&&tag==0) tag=1,cnt++,posl=i;
			else if(a[i]==1&&tag==1) cnt++;
			else if(a[i]==0&&tag==1){
				tag=0,posr=i-1;
				if(posl>=3&&a[posl-2]==1&&posr<=n-2&&a[posr+2]==1) minn=min(minn,cnt);
				cnt=0;
			}
		}
		if(minn==n) minn=0;
		if(num1&&num2){
			if(minn==0) ans+=min(num1,num2);
			else ans+=min(minn,min(num1,num2));
		}
		cout<<ans<<endl;
	}
	return 0;
}

详细

Test #1:

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

input:

3
2
01
5
00110
9
101010101

output:

1
2
6

result:

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

Test #2:

score: -100
Wrong Answer
time: 6ms
memory: 3572kb

input:

10000
15
010111111011011
10
1000101111
10
0011111101
1
0
3
110
4
1000
8
10000111
20
00000101000100001110
13
1101110110110
13
0111100011010
17
00001001111110101
1
0
20
10001010011000111100
11
00100110101
11
10110101000
15
001011110011000
16
1110111110000111
15
011110110110010
1
0
20
10110001101100010...

output:

11
6
7
0
2
1
4
6
9
7
9
0
9
5
5
7
11
9
0
9
8
7
3
6
0
6
2
5
4
8
10
4
6
1
8
2
1
8
1
8
11
9
13
4
12
13
16
6
4
4
5
1
1
7
7
5
3
0
0
11
8
5
6
7
6
4
9
1
4
5
12
0
2
10
4
3
7
7
3
7
4
3
7
9
15
2
6
6
9
8
6
1
2
6
2
11
10
5
0
0
4
7
4
7
0
4
7
9
3
3
10
3
6
12
8
1
8
6
5
2
4
9
7
1
5
7
8
3
5
11
6
10
8
8
9
16
2
7
6
4
3...

result:

wrong answer 35th numbers differ - expected: '7', found: '8'