Submission #117919

#TimeUsernameProblemLanguageResultExecution timeMemory
117919onjo0127Segway (COI19_segway)C++11
100 / 100
90 ms6520 KiB
#include <bits/stdc++.h>
using namespace std;

int cnt[333];
int a[20009], b[20009], c[20009], l[20009], p[20009], ans[20009];
bool chk[333];
vector<int> ev[55]; int MOD = 55, now = 0;

int main() {
    int N; scanf("%d",&N);
    for(int i=1; i<=N; i++) {
        scanf("%d%d%d", &a[i], &b[i], &c[i]);
        ev[a[i]].push_back(i);
    }
    int M; scanf("%d",&M);
    while(M--) {
        int foo; scanf("%d", &foo);
        chk[foo] = 1;
    }
    while(cnt[300] < N) {
        ++now;
        for(auto& it: ev[now % MOD]) {
            ++p[it];
            if(chk[p[it]] && !l[it]) l[it] = cnt[p[it]] % 20;

            if(p[it] == 300) ans[it] = now;
            else if(l[it]) {
                --l[it];
                ev[(now + 1) % MOD].push_back(it);
            }
            else {
                int nxt;
                if(p[it] < 100) nxt = (now + a[it]) % MOD;
                else if(p[it] < 200) nxt = (now + b[it]) % MOD;
                else nxt = (now + c[it]) % MOD;
                ev[nxt].push_back(it);
            }
        }
        for(auto& it: ev[now % MOD]) ++cnt[p[it]];
        ev[now % MOD].clear();
    }
    for(int i=1; i<=N; i++) printf("%d\n", ans[i]);
    return 0;
}

Compilation message (stderr)

segway.cpp: In function 'int main()':
segway.cpp:10:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     int N; scanf("%d",&N);
            ~~~~~^~~~~~~~~
segway.cpp:12:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d", &a[i], &b[i], &c[i]);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
segway.cpp:15:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     int M; scanf("%d",&M);
            ~~~~~^~~~~~~~~
segway.cpp:17:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         int foo; scanf("%d", &foo);
                  ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...