Submission #233347

#TimeUsernameProblemLanguageResultExecution timeMemory
233347VEGAnnSegway (COI19_segway)C++14
40 / 100
1091 ms2780 KiB
#include <bits/stdc++.h> #define sz(x) ((int)x.size()) #define all(x) x.begin(),x.end() #define PB push_back using namespace std; const int N = 20100; const int M = 310; const int md = int(1e9) + 7; const int TIM = 20000; vector<array<int, 3> > vc; vector<int> events[M][2]; int a[N][3], n, tim[N], m, ans[N], mem[N], fast[N], OST[N], OSS[TIM]; bool loc[M]; bool cmp(int _x, int _y){ return tim[_x] < tim[_y]; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); #ifdef _LOCAL freopen("in.txt","r",stdin); #endif // _LOCAL cin >> n; for (int i = 0; i < n; i++) { cin >> a[i][0] >> a[i][1] >> a[i][2]; vc.PB({i, 0, 0}); } for (int i = 0; i < TIM; i++) OSS[i] = i % 100; OST[0] = 0; for (int i = 1; i <= n; i++) OST[i] = i % 20; cin >> m; for (int i = 0; i < m; i++){ int x; cin >> x; loc[x] = 1; } int tim = 0; while (sz(vc)){ for (array<int, 3> cr : vc) { if (cr[1] == 300) ans[cr[0]] = tim; else events[cr[1]][cr[2]].PB(cr[0]); } vc.clear(); int kol = n; for (int i = 0; i < 300; i++) for (int tp = 0; tp < 2; tp++){ if (sz(events[i][tp]) == 0) continue; kol -= sz(events[i][tp]); int ost = min(300 - i, OST[kol]); if (tp == 0 && loc[i] && ost > 0){ for (int cr : events[i][tp]){ int speed = a[cr][0]; if (i > 99) speed = a[cr][1]; if (i > 199) speed = a[cr][2]; if (fast[cr] > 0){ vc.PB({cr, i + 1, 0}); mem[cr] = tim + 1; fast[cr]--; } else { fast[cr] = ost - 1; mem[cr] = tim + 1; vc.PB({cr, i + 1, 0}); if (OSS[(i + 1)] == 0) mem[cr] = tim + 1; } } } else { for (int cr : events[i][tp]){ int speed = a[cr][0]; if (i > 99) speed = a[cr][1]; if (i > 199) speed = a[cr][2]; if (fast[cr] > 0){ vc.PB({cr, i + 1, 0}); mem[cr] = tim + 1; fast[cr]--; } else { if (mem[cr] % speed == (tim + 1) % speed) { vc.PB({cr, i + 1, 0}); if (OSS[(i + 1)] == 0) mem[cr] = tim + 1; } else vc.PB({cr, i, 1}); } } } events[i][tp].clear(); } tim++; } for (int i = 0; i < n; i++) cout << ans[i] << '\n'; return 0; }

Compilation message (stderr)

segway.cpp: In function 'int main()':
segway.cpp:71:25: warning: variable 'speed' set but not used [-Wunused-but-set-variable]
                     int speed = a[cr][0];
                         ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...