首页 > 代码库 > Tyvj2016清北冬令营入学测试

Tyvj2016清北冬令营入学测试

P4744 A’s problem(a)

时间: 1000ms / 空间: 655360KiB / Java类名: Main

背景

冬令营入学测试题,每三天结算一次成绩。参与享优惠

描述

这是一道有背景的题目,小A也是一个有故事的人。但可惜的是这里纸张太小,小A无法把故事详细地说给大家听。可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了……

小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天工作8小时,一周工作7天。小A想知道性价比最高(一个月的工资除以总时长)的工作的编号是多少。如果有多份,输出编号最小的就可以了。

输入格式

第一行一个数n,表示有n份工作。

         接下来n个数表示ai。

输出格式

输出一个数表示答案。

备注

输入样例

5

3 3 4 5 5

 

输出样例

4

 

数据范围

对于100%的数据n<=100,1<=ai<=1000。

 【水题不多说系列】

#include<iostream>
using namespace std;
int n,a[110];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    int j=1;
    for(int i=2;i<=n;i++)
        if(a[i]>a[j])j=i;
    cout<<j;
    return 0;
}

P4745 B’s problem(b)

时间: 1000ms / 空间: 655360KiB / Java类名: Main

背景

冬令营入学测试

描述

题目描述

         小B生活在一个很奇怪的国家里,这个国家的钱的面值只有可能是25,50,100的。小B最近在做社会实践,这次它选择在一个餐厅里干这件事情。但今天发生了一件有趣的事,这件事情是这个样子的,餐厅里大家都在排队买饭,粗心的打饭阿姨忘记要带零钱,并且所有排队打饭的人只带了一张钱。

         具体地,第i个人带了一张面额为ai的钱,为了方便起见,我们规定每个人都想买价值25元的饭盒。阿姨显得不知所措。聪明的小B想到了一个方法,让带了25元的先买饭!这样阿姨就有了更多的零钱去找开一些面值较大的钱。

         但这样对于一些人来说仍有可能找不开零钱,小B想知道是否存在一种排队方案,能够对所有人找开零钱。如果可行输出“YES”,否则输出“NO”。

输入格式

第一行一个数n,表示有n个想买饭的人。

         接下来一行n个数ai,表示第i个人带着的钱的面额。

 

输出格式

输出“YES”或者“NO”。

 

备注

输入样例

3

25 50 100

 

输出样例

NO

 

数据范围

对于100%的数据n<=100,ai=25或者50或者100。

 思路

把所有的人拿的钱从小到大排个序,另外可以发现

如果这个人拿的是25元,那么不需要找钱,我的钱包里就多了25元

如果这个人拿的是50元,那么只有一种解决办法,用一张25元的和他换,如果此时我没有25元的那么“NO”(因为我已经把人们从大到小排过序了,所以后面的人不可能有25的钱)

如果这个人拿的是100元,有两种办法

  用一张50和一张25与他换,要求b25>=1,b50>=1

  用三张25与他换,要求b25>=3

不满足要求则NO

#include<iostream>
#include<algorithm>
using namespace std;
int n,a[110],b25,b50,b100;
bool flag;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++)
    {
        if(a[i]==25)b25++;
        if(a[i]==50)
        {
            if(b25==0)flag=1;
            else b25--,b50++;
        }
        if(a[i]==100)
        {
            if(b25==0)flag=1;
            else{
                if(b25>=1&&b50>=1){
                    b25--;b50--;
                    continue;
                }
                else if(b25>=3){
                    b25-=3;
                    continue;
                }
                else flag=1;
            }
        }
    }
    if(flag==0)cout<<"YES";
    else cout<<"NO";
    return 0;
}

 

Tyvj2016清北冬令营入学测试