Description
Igor has fallen in love with Tanya. Now Igor wants to show his feelings and write a number on the fence opposite to Tanya's house. Igor thinks that the larger the number is, the more chance to win Tanya's heart he has.
Unfortunately, Igor could only get v liters of paint. He did the math and concluded that digit d requires ad liters of paint. Besides, Igor heard that Tanya doesn't like zeroes. That's why Igor won't use them in his number.
Help Igor find the maximum number he can write on the fence.
Input
The first line contains a positive integer v(0 ≤ v ≤ 106). The second line contains nine positive integers a1, a2, ..., a9(1 ≤ ai ≤ 105).
Output
Print the maximum number Igor can write on the fence. If he has too little paint for any digit (so, he cannot write anything), print -1.
Sample Input
5 5 4 3 2 1 2 3 4 5
55555
2 9 11 1 12 5 8 9 10 6
33
0 1 1 1 1 1 1 1 1 1
-1
就是有v升油漆,一个i需要ai的油漆,看怎么写写的数最大
分析:
先找位数,位数越多,数越大,然后再尽量输出更大的
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long int n,i,a[10],l,m,r,k,q,t;
while(cin>>n)
{
for(i=1;i<10;i++)
cin>>a[i];
for(i=2,k=a[1],l=1;i<10;i++)
if(k>=a[i]){
k=a[i];
l=i;
}
m=n/k;
if(m){
for(i=9,t=n%k;i>l;i--){
q=a[i]-k;
r=t/q;
t-=r*q;
while(r)
{
cout<<i;
r--;
m--;
}
}
for(i=0;i<m;i++)
cout<<l;
}
else
cout<<"-1";
cout<<endl;
}
}
感受:
一开始想成只要位数大就可以了,后来改了,一直不对,我就不用set了,就对了。。。。。
见鬼了
Igor的爱情数字难题
本文介绍了一个有趣的编程问题,即如何使用有限的油漆量写出对面女孩最喜爱的最大数字。通过计算不同数字所需的油漆量,文章提供了一种有效的算法来解决这个问题。
1327

被折叠的 条评论
为什么被折叠?



