Codeforces 1070D - Garbage Disposal
程序员文章站
2022-03-02 23:06:13
...
题目:https://codeforces.com/problemset/problem/1070/D
解题思路:
1.若前一天有垃圾剩余,则今天应至少处理一次
2.若前一天没有垃圾剩余。且今天的垃圾未填满垃圾袋,则可以暂不处理
代码:
#include<cstdio>
#include<map>
#include<queue>
using namespace std;
typedef long long LL;
int main()
{
int n,k,a,cut = 0;
LL nl = 0;
scanf("%d %d",&n,&k);
for(int i = 0; i < n; i++){
scanf("%d",&a);
if(cut){
cut += a;
if(cut >= k) nl += cut / k,cut = cut % k;
else cut = 0,nl++;
}
else{
cut += a;
if(cut >= k) nl += (LL)(cut / k),cut = cut % k;
}
}
if(cut) nl++;
printf("%lld\n",nl);
return 0;
}