WUST OJ 1276: 峰峰不搞G

1276: 峰峰不搞G

Time Limit: 1 Sec   Memory Limit: 128 MB   64bit IO Format: %lld
[ Submit][ Status][ Web Board]

Description

峰峰在2013年暑假集训的时候找到了自己的真爱,她的名字叫LRW。今天距离2013年武科大“菜鸟杯”程序设计竞赛已经过去了十年了,今天对峰峰和LRW也是特别的一天——1周年结婚纪念日。这一天LRW问了峰峰一个问题:你会爱我多久?峰峰想让这个回答更有一些意义,又正巧家里有一面闲置的白墙。于是峰峰出门去买了一桶油漆。他想用油漆在墙上写下一个代表天数的数字作为他的答案。为了表达他对LRW的爱,他想把这个数字写的尽量大一些。但是讨厌英语的他不喜欢数字0,因为他觉得这像大写的英语字母‘O’。
  问题来了,假设他买来的油漆有n公升(1<=n<=10^6)。然后他在事前实验了一下他在墙上写下1-9中每个数字所需要花费的油漆数量,分别为a1,a2,a3...a9(1≤ai≤10^5)(单位:公升)。那么你知道他写下了哪一个数字吗?
  如果那天他一个数字都写不出来,那么LRW就会帮他写下”Lihun!”(不要引号)。

Input

第一行输入n,表示他买来的油漆的数量。
第二行输入9个数字,表示对应写在墙上的数字所需要花费的油漆数量。

Output

峰峰或者LRW在墙上写下的东西。即如果峰峰能写下某个数,请输出那个数字。否则输出”Lihun!”...

Sample Input 

5

5 4 3 2 1 2 3 4 5

2

9 11 1 12 5 8 9 10 6

0

1 1 1 1 1 1 1 1 1


Sample Output

55555

33

Lihun!

HINT

比如第一个样例:峰峰在墙上写一个数字1,需要花费5公升的油漆。写一个数字2需要花费4公升油漆……那么此时拥有5公升油漆的他,可以在墙上写下5个5,而且也是最大的。所以输出55555...

思路:先用所有的油漆来买那个花费油漆最少,同时值最大的数字,假设数字5是花费油漆中最少的最大的数,写一个5花费b升油漆,我们把油漆全用来写5,还剩下a升油漆。然后用剩下的油漆加上一个b升油漆(即拿出一个5换成b升油漆)看这a+b升油漆能不能写一个比5大的最大的数,如果能那就把这个5换成那个较大的数,如此循环,直到换不了更大的数。

#include<stdio.h>
int main()
{
    int n,a[10];
    while(scanf("%d",&n)!=EOF)
    {
        int ans,QWQ=1;
        for(int i=1;i<=9;i++)
        {
            scanf("%d",&a[i]);
            QWQ=a[QWQ]>=a[i]?i:QWQ;
        }
        ans=n/a[QWQ];
        if(ans)
        {
            n=n-ans*a[QWQ];
            while(1)
            {
                int flag=0;
                for(int i=9;i>QWQ;i--)
                {
                    if(n+a[QWQ]>=a[i])
                    {
                        flag=1;
                        n=n-a[i]+a[QWQ];ans--;
                        printf("%d",i);break;
                    }
                }
                if(flag==0)break;
            }
            while(ans--)printf("%d",QWQ);
            printf("\n");
        }
        else puts("Lihun!");
    }
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值