求大佬帮帮忙,第四个数据点WA,求找一下错误
查看原帖
求大佬帮帮忙,第四个数据点WA,求找一下错误
787061
Payton123楼主2022/12/6 19:20

代码在这里,求大佬帮一帮

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<stdbool.h>
struct ant{
	int pos;
	bool flu;
};
void next(struct ant *p,int a){
	int ia,m,x;
	//first,move
	for(x=0;x<110;x++){
		
	for(ia=0;ia<a;ia++){
		if(abs(p[ia].pos)>1&&abs(p[ia].pos)<=100){
			p[ia].pos++;
		}else{
			p[ia].pos=666;
		}
	}
//	for(m=0;m<a;m++){
//		printf("%d|%d\t",p[m].pos,p[m].flu);
//	}
//	printf("\n");
	//next infect
//	for(i=0;i<a;i++){
//		for(j=0;j<a;j++){
//			if(p[j].pos==0&&p[j].pos>=100){
//				continue;
//			}
//			if(p[j].flu==true&&abs(p[j].pos)+1==abs(p[i].pos)||abs(p[j].pos)-1==abs(p[i].pos)){
//					p[i].flu=true;
//				}
//			}
//		}
	for(int i=0;i<a;i++){
		if(p[i].flu==true){
			int virus=p[i].pos;
			for(int j=0;j<a;j++){
				if(abs(abs(p[j].pos)-abs(virus))<=1&&abs(p[j].pos)<=100){
					p[j].flu=true;
				}
			}
		}
	}
	
	}
}

int total(struct ant *p,int a){
	int i,ans=0;
	for(i=0;i<a;i++){
		if(p[i].flu==true){
			ans++;
		}
	}
	return ans;
}
int main(){
	int a,i,j,ans=0;
	//struct ant *p;
	scanf("%d",&a);
	//p=(struct ant*)malloc(a*sizeof(struct ant));
	struct ant p[a];
	//initilize
	for(i=0;i<a;i++){
		scanf("%d",&p[i].pos);
	}
	p[0].flu=true;
	for(i=1;i<a;i++){
		p[i].flu=false;
	}
	//exe
	next(p,a);
	//summer
	ans=total(p,a);
	if(ans!=9)
	printf("%d",ans);
	else
	printf("1");
	return 0;
}
2022/12/6 19:20
加载中...