P3944 肮脏的牧师
能够把自己的复杂的想法实现出来当然好
但是即使是一个复杂的,自以为正确的错误想法??
(被卡了半年有感)
#include<iostream>
#include<cstdio>
using namespace std;
int simex[30010];
int bo;
int at[4];
int n,m;
int res;
int x;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i){
scanf("%d",&x);
simex[x]++;
}
for(int i=1;i+2<=30001;i+=3){
res+=simex[i];
at[1]+=simex[i];
res+=simex[i+1]*2;
at[2]+=simex[i+1];
res+=simex[i+2]*3;
at[3]+=simex[i+2];
bo++;
if(res>=m)
break;
}
//药水一次减三,那就三个一组
while(res>=m+3&&at[3]){
at[3]--;
res-=3;
}
//暗影狂乱最不值了
while(res>=m+1&&at[1]){
at[1]--;
res-=1;
}
//一攻的疯狂药水其次
while(res>=m+2&&at[2]){
at[2]--;
res-=2;
}
//最赚
if(res>=m){
cout<<bo-1<<" "<<at[1]+at[2]+at[3]*4+bo-1;
}
else{
cout<<"Human Cannot Win Dog";
}
return 0;
}