能夠把自己的複雜的想法實現出來當然好
但是即使是一個複雜的,自以爲正確的錯誤想法??
(被卡了半年有感)
#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;
}