跪求大佬解惑
查看原帖
跪求大佬解惑
546520
adfhuiau155楼主2021/8/28 11:22

我在本地编译器上第一个测试案例与答案是一致的,但oj上就是判错。。。。。

#include<bits/stdc++.h>
using namespace std;
void cout_num(string s,int &i,int &j){
	for(int bp=0,rp=s.size()-1;rp>=bp;bp++,rp--){
		if(rp>bp){
			if(s[bp]==s[rp]&&s[bp]=='0')i+=2;
			else if(s[bp]=='0'||s[rp]=='0')j+=1;
		}
		else if(rp==bp){
			if(s[rp]=='0')j++;
		}
	}
}
int T,n;
int main(){
	scanf("%d",&T);
	int i=0,j=0;
	string s;
	while(T--){
		s.clear();
		scanf("%d",&n);
        cin.sync();
		i=0;j=0;
		cin>>s;
		cout_num(s,i,j);
		if(i+j==0){
			printf("DRAW\n");
			continue;
		}
		if(s.size()%2==0||(s.size()%2==1&&s[s.size()/2]=='1')){
			if(i==0){
				printf("ALICE\n");
			}
			else{
				if(j<2){
					printf("BOB\n");
				}
				else if(j==2){
					printf("DRAW\n");
				}
				else if(j>2){
					printf("ALICE\n");
				}
			}
		}
		else {
			if(j==1&&i==0){
				printf("BOB\n");
			}
			else if(i==0&&j==2){
				printf("DRAW\n");
			}
			else {
				printf("ALICE\n");
			}
		}
	}
    return 0;
}
2021/8/28 11:22
加载中...