欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

相关标签: codeforces