Codeforces 939B(Hamster Farm)

这道题目很明显的就是一道翻译题 很简单没有坑 这里就不详细解释了,详解请看代码。

题目:

Dima has a hamsters farm. Soon N hamsters will grow up on it and Dima will sell them in a city nearby.

Hamsters should be transported in boxes. If some box is not completely full, the hamsters in it are bored, that’s why each box should be completely full with hamsters.

Dima can buy boxes at a factory. The factory produces boxes of K kinds, boxes of the i-th kind can contain in themselves ai hamsters. Dima can buy any amount of boxes, but he should buy boxes of only one kind to get a wholesale discount.

Of course, Dima would buy boxes in such a way that each box can be completely filled with hamsters and transported to the city. If there is no place for some hamsters, Dima will leave them on the farm.

Find out how many boxes and of which type should Dima buy to transport maximum number of hamsters.

Input
The first line contains two integers N and K (0 ≤ N ≤ 1018, 1 ≤ K ≤ 105) — the number of hamsters that will grow up on Dima’s farm and the number of types of boxes that the factory produces.

The second line contains K integers a1, a2, …, aK (1 ≤ ai ≤ 1018 for all i) — the capacities of boxes.

Output
Output two integers: the type of boxes that Dima should buy and the number of boxes of that type Dima should buy. Types of boxes are numbered from 1 to K in the order they are given in input.

If there are many correct answers, output any of them.

Examples
inputCopy
19 3
5 4 10
output
2 4
inputCopy
28 3
5 6 30
output
1 5

代码:

题意就是给你一个 n 一个k n代表你有n只仓鼠 k代表你有k种笼子
接下来有k个数 代表每个笼子能装多少只仓鼠 笼子有无限个
让你求怎样让最后一个装不满的笼子所装仓鼠最少,必须装满一个笼子才可以装下一个 输出 第几种笼子 有几个装满的笼子 直接for循环判断即可

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>

using namespace std;
const int N=1e5+10;


int main()
{
    ios::sync_with_stdio(false);
    long long n,k;
    while(cin>>n>>k)
    {
        long long a,ans=0;
        long long minn=1e18+1;
        long long x,y,t;  //注意开long long 
        for(int i=1;i<=k;i++)
        {
            cin>>a;
            x=n/a; //几个笼子
            y=n%a;//最后一个装不满笼子有几只仓鼠
            if(y<minn)//更新最小值
            {
                minn=y;
                ans=i;
                t=x;
            }
        }
        cout<<ans<<" "<<t<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Puppet__/article/details/79344615