제출 #1152996

#제출 시각아이디문제언어결과실행 시간메모리
1152996susanthenerdSegway (COI19_segway)C++20
100 / 100
154 ms1544 KiB
#include <iostream>
#include <vector>
#include <array>
#include <map>

using namespace std;

struct concurent {
    int power;
    array<int, 3> inter{};
};

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> n;

    vector<int> putere(n);
    vector<array<int, 3> > viteza(n);

    for (auto &it: viteza) {
        for (auto &it2: it)
            cin >> it2;
    }

    cin >> m;

    vector<bool> boost(300);
    map<int, vector<int> > pos;

    while (m--) {
        int x;
        cin >> x;
        boost[x] = true;
    }

    for (int i = 0; i < n; ++i) {
        pos[0].push_back(i);
    }


    for (int i = 0; i < 300; ++i) {
        int cnt = 0;

        map<int, vector<int> > nou;
        for (auto &[t, v]: pos) {
            for (auto &it: v) {
                if (boost[i] && putere[it] == 0) {
                    putere[it] = cnt % 20;
                }

                if (putere[it]) {
                    nou[t + 1].push_back(it);
                    --putere[it];
                } else {
                    nou[t + viteza[it][i / 100]].push_back(it);
                }
            }

            cnt += v.size();
        }

        pos = nou;
    }


    vector<int> ans(n);

    for (const auto &[t, v]: pos) {
        for (const auto &it: v) {
            ans[it] = t;
        }
    }

    for (const auto &it: ans) {
        cout << it << '\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...