40分求助,样例能过
查看原帖
40分求助,样例能过
1457370
er_yuan楼主2024/10/23 21:45
#include<bits/stdc++.h>
using namespace std;
int m,f,z,t;
long long n;
int w[105];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		cin>>w[i];//输入每个人的时间 
		z+=w[i];//z=可能的最大时间 (一个水龙头) 
	}
	if(m>=n){
		for(int i=1;i<=n;++i){
			if(w[i]>w[i-1])f=w[i];
		}
		cout<<f;
	}//特判 ,水龙头比人多 
	else{
		for(int j=1;j<=z;j++){
			int ok=0;//水龙头占用数量 
			int yes=0;//是否有人接过水 
			for(int i=1;i<=n;++i){//每秒钟让所有人尝试接水 
				if(w[i]!=0){//如果还有人要接水 
				ok++;//水龙头占用数量+1 
				if(ok>m)break;//水龙头不够用就直接下一秒 
				w[i]-=1;//接一秒水 
				yes=1;//这一秒有人接过水 
				}
			}
			if(yes)t++;//有人接过水加时间 
			else break;//没有人接水,结束 
		}
		cout<<t;
	}
}
2024/10/23 21:45
加载中...