天天看點

藍橋杯(C語言題目)題目 1629: [藍橋杯][算法訓練VIP]接水問題題目 1629: [藍橋杯][算法訓練VIP]接水問題

題目 1629: [藍橋杯][算法訓練VIP]接水問題

時間限制: 1Sec 記憶體限制: 128MB

題目描述

輸入

輸出

樣例輸入

樣例輸出

C代碼

#include <stdio.h>
int dm[101]={0};
int w[10001];
int t=1;
int bj=0;
int main()
{
	int n,m,i,j,d=1;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
	scanf("%d",&w[i]);
	while(1)
	{
		for(i=1;i<=m;i++)
		{
			if(dm[i]==0)//若有水龍頭 這一機關時間 沒使用 則替換 接水者 
			{
				if(d<=n)dm[i]=d++;//dm[i]  i 代表 水龍頭 編号 dm[i]存儲 這一機關時間 接水人編号 
			}
			if(dm[i]!=0)//水龍頭有人接水  本水龍頭接水人節水量-1 
			{
				w[dm[i]]-=1; if(w[dm[i]]==0)dm[i]=0;bj=1;}//這一機關本水龍頭接水人接水量為0則空出水龍頭
			}
			if(bj!=1)
				break; //bj==1則表示 本次機關時間 有水龍頭使用 bj==0則标記本機關時間沒水龍頭使用則所有過程上一秒已完成   
			bj=0;
			t++;
		}
	printf("%d\n",t-1);
	return 0;
}
           

通過C語言網編譯運作

繼續閱讀