題目 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;
}