Codeforces 799A Carrot Cakes 题解

来源:互联网 发布:python 共享内存对象 编辑:程序博客网 时间:2024/06/07 06:11

题意

现在有n个胡萝卜,一个炉子,一个炉子可以同时做k个胡萝卜,做好需要t分钟,现在允许用d分钟再造一个相同的炉子,两个炉子可以同时工作,判断再建一个炉子是否可以缩短总时间

思路

分别计算建不建炉子的时间进行比较,先计算一共需要做多少次胡萝卜,就是(n+1)/k,然后再乘t就是不建的,建的首先算出在建的时候能做多少次胡萝卜,减去后剩下的平分两个炉子,奇数时给原先的炉子多一次,计算出总时间,然后比较

代码

#include <cstdio>#include <algorithm>using namespace std;int main(){    int n,t,k,d,t1,t2,t3;    scanf("%d%d%d%d",&n,&t,&k,&d);    if(n%k==0)        n/=k;    else n=n/k+1;    t1=n*t;    if(n*t<=d)    {        t2=d;        t3=d;    }    else    {        t2=d;        t3=d/t*t;        n-=d/t;        if(n%2==1)            t2=t3+(n/2+1)*t;        else t2=t2+n/2*t;    }    if(t1>t2)        printf("YES\n");    else printf("NO\n");    return 0;}
0 0
原创粉丝点击