求助此题
查看原帖
求助此题
133116
Xhesika_Frost楼主2020/7/18 20:38

大家好,我是通灵学院的新生,今天克校长给我布置了这道题,可是我wa了两个点,校长很生气,求大佬救救蒟蒻

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,m;
long long k;
long long at[5];
long long use;
long long now;
long long re;
long long u,v;
long long ki[5000005];
int main(){
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;++i)
	cin>>ki[i];
	sort(ki+1,ki+1+n);
//	cout<<ki[1];
	for(long long i=1;i<=n;++i){
		k=ki[i];
		u=k%3;
		if(u){
			use=k/3;
			now+=u;
		}else{
			use=k/3-1;
			u=3;
			now+=u;
		}
		at[u]++;
		if(now>m){
			long long v=now-m;
			if(v==1){
				if(at[1])
				at[1]--;
			}
			if(v==2){
				if(at[1]>1){
					at[1]-=2;
				}
				else
				if(at[1]==1)
				at[1]--;
				else if(at[2]==1)
				at[2]--;
			}
		}
		if(now>=m){
			cout<<use<<" "<<(at[1]+at[2])+4*at[3]+use;
			return 0;
		}
	}
	cout<<"Human Cannot Win Dog";
	return 0;
} 
2020/7/18 20:38
加载中...