Round F 2020 - Kick Start 2020

2020-09-28  本文已影响0人  Catcola

题意:有n个人,每个人要取Ai块钱,每次最多取X块钱,没取完就回到队尾继续排队,取完就离开队伍

输出离开队伍的人的顺序。


思路:算一下每个人需要几次可以取完他需要的钱,输出的时候按照次数从少到多一次输出。


C++代码: 

#include <stdio.h>

#include <queue>

#include <iostream>

#include <map>

using namespace std;

map<int, vector<int>> res;

int main(){

    int T;

    cin >> T;

    for(int t = 1; t <= T; t++){

        res.clear();

        int n, x;

        cin >> n >> x;

        for(int i = 0; i < n; i++){

            int tmp;

            cin >> tmp;

            int qq = tmp / x;

            if(tmp % x != 0) qq += 1;

            if(res.find(qq) != res.end())

                res[qq].push_back(i + 1);

            else{

                vector<int> v;

                res.insert(make_pair(qq, v));

                res[qq].push_back(i + 1);

            }

        }

        printf("Case #%d:", t);

        for(auto it = res.begin(); it != res.end(); it++){

            auto v = it->second;

            for(int i = 0; i < v.size(); i++){

                cout << " " << v[i] ;

            }

        }

        cout << endl;

    }

}

上一篇下一篇

猜你喜欢

热点阅读