• Codeforces Round #464 (Div. 2) B. Hamster Farm


    B. Hamster Farm

    time limit per test2 seconds
    memory limit per test256 megabytes

    Problem Description

    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 ≤ 10e18, 1 ≤ K ≤ 10e5) — 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 ≤ 10e18 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

    input
    19 3
    5 4 10
    output
    2 4
    input
    28 3
    5 6 30
    output
    1 5


    解题心得:

    1. 题意是一个农夫有n只仓鼠,k中笼子,每种笼子可以装Ki只仓鼠,只有笼子装满才能将仓鼠带走,选择一种笼子,要使带走的仓鼠最多,问最少要多少个笼子。
    2. 暴力,每次mod一下找最小值。
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int maxn = 1e5+100;
    ll k[maxn],sum,K;
    
    int main(){
        scanf("%lld%lld",&sum,&K);
        ll ans_pos = -1,Min = 1e18;
        for(int i=1;i<=K;i++){
            scanf("%lld",&k[i]);
            ll temp = sum%k[i];
            if(temp < Min){
                Min = temp;
                ans_pos = i;
            }
        }
        printf("%lld %lld",ans_pos,sum/k[ans_pos]);
        return 0;
    }
  • 相关阅读:
    使用ATL开发ActiveX控件
    [Silverlight]AutoCompleteBox控件的一个Bug?
    [Silverlight]一个简单的GroupBox控件
    WCF安全之ASP.NET兼容模式
    Mysql 性能优化记录
    【Python+Django+Pytest】数据库异常pymysql.err.InterfaceError: (0, '') 解决方案
    Django在使用logging日志模块时报错无法操作文件 logging error Permission Error [WinError 32]
    isinstance 判断一个对象属于或不属于多种数据类型
    CentOS 系统 查看 cpu核数
    我踩过的python的坑
  • 原文地址:https://www.cnblogs.com/GoldenFingers/p/9107169.html
Copyright © 2020-2023  润新知