Submission #241079

#TimeUsernameProblemLanguageResultExecution timeMemory
241079vanicSegway (COI19_segway)C++14
0 / 100
27 ms384 KiB
#include <iostream> #include <math.h> #include <cstdio> #include <algorithm> #include <vector> using namespace std; const int maxn=2e4+5, maxs=305; int v[maxn][3]; vector < int > pos[maxs]; int dio[maxn]; int ispred[maxn]; int ubrz[maxn]; bool acel[maxs]; int sol[maxn]; bool bio[maxn]; int main(){ int n; cin >> n; for(int i=0; i<n; i++){ cin >> v[i][0] >> v[i][1] >> v[i][2]; } int m; cin >> m; int a; for(int i=0; i<m; i++){ cin >> a; acel[a]=1; } for(int i=0; i<n; i++){ pos[0].push_back(i); } int cilj=n; int mini; bool prog; int proslo=0; while(cilj){ mini=100; for(int i=0; i<300; i++){ for(int j=0; j<pos[i].size(); j++){ if(ubrz[pos[i][j]]){ mini=1; } else{ mini=min(mini, v[pos[i][j]][i/100]-dio[pos[i][j]]); } } } proslo+=mini; for(int i=0; i<300; i++){ for(int j=0; j<pos[i].size(); j++){ if(!bio[pos[i][j]]){ bio[pos[i][j]]=1; prog=0; if(ubrz[pos[i][j]]){ prog=1; ubrz[pos[i][j]]--; } else{ dio[pos[i][j]]+=mini; if(dio[pos[i][j]]==v[pos[i][j]][i/100]){ prog=1; dio[pos[i][j]]=0; } } if(prog){ ispred[pos[i][j]]-=pos[i+1].size(); pos[i+1].push_back(pos[i][j]); if(!ubrz[pos[i][j]] && acel[i+1]){ ubrz[pos[i][j]]=ispred[pos[i][j]]%20; } if(i+1==300){ sol[pos[i][j]]=proslo; cilj--; } pos[i].erase(pos[i].begin()+j); j--; for(int k=0; k<pos[i].size(); k++){ ispred[pos[i][k]]++; } } } } } for(int i=0; i<n; i++){ bio[i]=0; } } for(int i=0; i<n; i++){ cout << sol[i] << '\n'; } return 0; }

Compilation message (stderr)

segway.cpp: In function 'int main()':
segway.cpp:43:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int j=0; j<pos[i].size(); j++){
                 ~^~~~~~~~~~~~~~
segway.cpp:54:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int j=0; j<pos[i].size(); j++){
                 ~^~~~~~~~~~~~~~
segway.cpp:81:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int k=0; k<pos[i].size(); k++){
                    ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...