• CF 4B. Before an Exam


    CF 4B. Before an Exam   点击打开链接

    题意:快要考试了 你还有 n 天的时间一共要复习 m个小时,每天都有最小和最大复习时间。求,是否可能复习完。如果能,输出你的复习计划。

    思路:由于每天有复习时间的限制,你每天的复习时间就必须在限制之内,判断能否复习完,只需将最小复习时间相加与总复习时间相加比较即可。如果可以复习完,就用总复习时间减去 最小复习时间之和  得x,然后每天先取最小复习时间  MInTime,如果x有剩余,则取   MInTime+t    MinTime+t<MaxTime  然后x-=t。x==0之后,直接取MinTime即可。

    #include <iostream>
    using namespace std;
    int MinTime[500],MaxTime[500];
    int main()
    {
        int SumTime,Day,Max=0,Min=0;
        cin>>Day>>SumTime;
        for(int i=0;i<Day;i++){
            cin>>MinTime[i]>>MaxTime[i];
            Max+=MaxTime[i];
            Min+=MinTime[i];
        }
        if(Max<SumTime)
            cout<<"NO";
        else if(Min>SumTime)
            cout<<"NO";
        else{
            cout<<"YES"<<endl;
            int x=SumTime-Min;
            for(int i=0;i<Day;i++){
                if(MinTime[i]+x>=MaxTime[i]){
                    cout<<MaxTime[i];
                    x=MinTime[i]+x-MaxTime[i];
                }
                else{
                    cout<<MinTime[i]+x;
                    x=0;
                }
                if(i<Day-1)
                    cout<<" ";
            }
        }
        cout<<endl;
        return 0;
    }

  • 相关阅读:
    javaScript
    CSS
    HTML
    折纸 (模拟)
    不等式(数学)
    周期串查询
    大集训模拟赛十一
    大假期集训模拟赛十
    P1631 序列合并
    KMP(烤馍片)算法
  • 原文地址:https://www.cnblogs.com/Levi-0514/p/9042498.html
Copyright © 2020-2023  润新知