美文网首页
Round F 2020 - Kick Start 2020

Round F 2020 - Kick Start 2020

作者: Catcola | 来源:发表于2020-09-28 23:09 被阅读0次

    题意:有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;

        }

    }

    相关文章

      网友评论

          本文标题:Round F 2020 - Kick Start 2020

          本文链接:https://www.haomeiwen.com/subject/fifsuktx.html