zoukankan      html  css  js  c++  java
  • Coffee and Coursework (Easy version)

    Coffee and Coursework (Easy version)
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    The only difference between easy and hard versions is the constraints.

    Polycarp has to write a coursework. The coursework consists of mm pages.

    Polycarp also has nn cups of coffee. The coffee in the ii -th cup has aiai caffeine in it. Polycarp can drink some cups of coffee (each one no more than once). He can drink cups in any order. Polycarp drinks each cup instantly and completely (i.e. he cannot split any cup into several days).

    Surely, courseworks are not usually being written in a single day (in a perfect world of Berland, at least). Some of them require multiple days of hard work.

    Let's consider some day of Polycarp's work. Consider Polycarp drinks kk cups of coffee during this day and caffeine dosages of cups Polycarp drink during this day are ai1,ai2,,aikai1,ai2,…,aik . Then the first cup he drinks gives him energy to write ai1ai1 pages of coursework, the second cup gives him energy to write max(0,ai21)max(0,ai2−1) pages, the third cup gives him energy to write max(0,ai32)max(0,ai3−2) pages, ..., the kk -th cup gives him energy to write max(0,aikk+1)max(0,aik−k+1) pages.

    If Polycarp doesn't drink coffee during some day, he cannot write coursework at all that day.

    Polycarp has to finish his coursework as soon as possible (spend the minimum number of days to do it). Your task is to find out this number of days or say that it is impossible.

    Input

    The first line of the input contains two integers nn and mm (1n1001≤n≤100 , 1m1041≤m≤104 ) — the number of cups of coffee and the number of pages in the coursework.

    The second line of the input contains nn integers a1,a2,,ana1,a2,…,an (1ai1001≤ai≤100 ), where aiai is the caffeine dosage of coffee in the ii -th cup.

    Output

    If it is impossible to write the coursework, print -1. Otherwise print the minimum number of days Polycarp needs to do it.

    Examples
    Input
    Copy
    5 8
    2 3 1 1 2
    
    Output
    Copy
    4
    
    Input
    Copy
    7 10
    1 3 4 2 1 4 2
    
    Output
    Copy
    2
    
    Input
    Copy
    5 15
    5 5 5 5 5
    
    Output
    Copy
    1
    
    Input
    Copy
    5 16
    5 5 5 5 5
    
    Output
    Copy
    2
    
    Input
    Copy
    5 26
    5 5 5 5 5
    
    Output
    Copy
    -1
    
    Note

    In the first example Polycarp can drink fourth cup during first day (and write 11 page), first and second cups during second day (and write 2+(31)=42+(3−1)=4 pages), fifth cup during the third day (and write 22 pages) and third cup during the fourth day (and write 11 page) so the answer is 44 . It is obvious that there is no way to write the coursework in three or less days in this test.

    In the second example Polycarp can drink third, fourth and second cups during first day (and write 4+(21)+(32)=64+(2−1)+(3−2)=6 pages) and sixth cup during second day (and write 44 pages) so the answer is 22 . It is obvious that Polycarp cannot write the whole coursework in one day in this test.

    In the third example Polycarp can drink all cups of coffee during first day and write 5+(51)+(52)+(53)+(54)=155+(5−1)+(5−2)+(5−3)+(5−4)=15 pages of coursework.

    In the fourth example Polycarp cannot drink all cups during first day and should drink one of them during the second day. So during first day he will write 5+(51)+(52)+(53)=145+(5−1)+(5−2)+(5−3)=14 pages of coursework and during second day he will write 55 pages of coursework. This is enough to complete it.

    In the fifth example Polycarp cannot write the whole coursework at all, even if he will drink one cup of coffee during each day, so the answer is -1.

    题意:

    n杯咖啡,m页论文,每杯咖啡有自己的咖啡因含量a_{1}~a_{n},对应着喝完这杯咖啡能写页多少论文。在一天内喝第一杯咖啡,效果等于原值(ai的咖啡因量能肝ai页论文),每多喝一杯,这杯咖啡能产生的效果就会减一。问最少多少天完成论文?

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<vector>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 int main(int argc, char const *argv[])
     8 {
     9     
    10     int n,m;
    11     cin>>n>>m;
    12 
    13     vector<int> a(n);
    14     for( int i=0; i<n; i++ ){
    15         cin>>a[i];
    16     }
    17 
    18     sort(a.rbegin(),a.rend());/*降序*/
    19 
    20     for( int i=1; i<=n; i++ ){/*天数*/
    21         int sum=0;
    22         for( int j=0; j<n; j++ ){
    23             sum+=max(a[j]-j/i,0);
    24         }
    25         if(sum>=m){
    26             cout<<i<<endl;
    27             return 0;
    28         }
    29     }
    30     cout<<-1<<endl;
    31     return 0;
    32 }
    有些目标看似很遥远,但只要付出足够多的努力,这一切总有可能实现!
  • 相关阅读:
    MVVM架构~knockoutjs系列之验证信息自定义输出~再续
    数据挖掘:实用案例分析
    实际中碰到的一个异构系统之间数据交换的处理方式设计
    连载:现代无线电接收机的系统噪声系数分析一 级联接收机的计
    hadoop的一些名词解释
    【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(一)
    Visual Studio Tips: How to change project namespace
    PHP 类属性 类静态变量的访问
    ios日历视图实现日期输入
    简说一下coffeescript的constructor是如何导致Backbone.View的事件无法正常工作的.
  • 原文地址:https://www.cnblogs.com/Bravewtz/p/10464811.html
Copyright © 2011-2022 走看看