P3944 肮脏的牧师

Miku

能够把自己的复杂的想法实现出来当然好

但是即使是一个复杂的,自以为正确的错误想法??

(被卡了半年有感)

#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;
}
原文地址:https://www.cnblogs.com/For-Miku/p/13866840.html