zoukankan      html  css  js  c++  java
  • Codeforces Round #428 A. Arya and Bran【模拟】

    A. Arya and Bran
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Bran and his older sister Arya are from the same house. Bran like candies so much, so Arya is going to give him some Candies.

    At first, Arya and Bran have 0 Candies. There are n days, at the i-th day, Arya finds aicandies in a box, that is given by the Many-Faced God. Every day she can give Bran at most8 of her candies. If she don't give him the candies at the same day, they are saved for her and she can give them to him later.

    Your task is to find the minimum number of days Arya needs to give Bran k candies beforethe end of the n-th day. Formally, you need to output the minimum day index to the end of which k candies will be given out (the days are indexed from 1 to n).

    Print -1 if she can't give him k candies during n given days.

    Input

    The first line contains two integers n and k (1 ≤ n ≤ 100, 1 ≤ k ≤ 10000).

    The second line contains n integers a1, a2, a3, ..., an (1 ≤ ai ≤ 100).

    Output

    If it is impossible for Arya to give Bran k candies within n days, print -1.

    Otherwise print a single integer — the minimum number of days Arya needs to give Bran kcandies before the end of the n-th day.

    Examples
    input
    2 3
    1 2
    output
    2
    input
    3 17
    10 10 10
    output
    3
    input
    1 9
    10
    output
    -1
    Note

    In the first sample, Arya can give Bran 3 candies in 2 days.

    In the second sample, Arya can give Bran 17 candies in 3 days, because she can give him at most 8 candies per day.

    In the third sample, Arya can't give Bran 9 candies, because she can give him at most 8candies per day and she must give him the candies within 1 day.

    【题意】:给你n,k。1~n天发给他糖果,超过8给8,剩下的可以存,不超过8给当前的。求最少给到k的天数。

    【分析】:模拟

    【代码】:

    #include <bits/stdc++.h>
    
    using namespace std;
    #define LL long long  
    const int INF = 0x3f3f3f3f;  
    #define mod 10000007  
    #define mem(a,b) memset(a,b,sizeof a)  
      
      
      
    int main()  
    {  
        int n,m;  
        int a[105];  
        while(~scanf("%d%d",&n,&m))  
        {  
            int sum=0;  
            int ans=0;  
            for(int i=0; i<n; i++)  
            {  
                scanf("%d",&a[i]);  
            }  
            int flag=-1;  
            for(int i=0; i<n; i++)  
            {  
                ans+=a[i];  
                if(ans>=8)  
                    sum+=8,ans-=8;  
                else  
                    sum+=ans,ans=0;  
                if(sum>=m)  
                {  
                    flag=i+1;  
                    break;  
                }  
            }  
            printf("%d
    ",flag);  
        }  
        return 0;  
    }  
    View Code
  • 相关阅读:
    android 联系数据库
    shuffle一个简单的过程叙述性说明
    每天的学习经验:SharePoint 2013 定义自己添加的产品清单。Callout菜单项、文档关注、SharePoint服务机端对象模型查询
    函数调用
    InputMonitor注意事项
    处理FTP上传成功推理
    用Web技术开发客户端(一)
    简析Chrome和Webkit的渊源
    历史在重演:从KHTML到WebKit,再到Blink
    开发者应当了解的WebKit知识
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7851777.html
Copyright © 2011-2022 走看看