AcWing 1211. 蚂蚁感冒
原题链接
简单
作者:
术
,
2021-03-28 20:21:42
,
所有人可见
,
阅读 298
#include <iostream>
#include <math.h>
using namespace std;
const int N=55;
double a[N];
int cold[N];
int main()
{
int n;
cin>>n;
for(int i=0; i<n; i++)
cin>>a[i];
cold[0]=1;
int cnt=0;
while(cnt<n)
{
for(int i=0; i<n; i++)
{
if(a[i]!=0&&a[i]!=100)
{
if(a[i]>0)
a[i]+=0.5;
else
a[i]+=0.5;///这里是+0.5 !!!!!!!!!
if(a[i]==100||a[i]==0)
{
cnt++;
//cout<<a[i]<<endl;
}
}
}
for(int i=0; i<n; i++)
for(int j=i+1; j<n; j++)
if(a[i]!=0&&a[i]!=100&&a[j]!=0&&a[j]!=100&&fabs(a[i])==fabs(a[j]))
{
if(cold[i]||cold[j])
cold[j]=cold[i]=1;
a[j]=-a[j];
a[i]=-a[i];
}
}
int res=0;
for(int i=0; i<n; i++)
{
if(cold[i])
res++;
}
cout<<res;
return 0;
}