代码在这里,求大佬帮一帮
#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;
}