Submission #955930

#TimeUsernameProblemLanguageResultExecution timeMemory
955930Dan4LifeOvertaking (IOI23_overtaking)C++17
39 / 100
3524 ms63056 KiB
#include "overtaking.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define sz(a) (int)a.size() #define all(a) begin(a),end(a) using ll = long long; using vi = vector<int>; using vll = vector<ll>; const int mxN = (int)1010; multiset<pair<ll,int>> S[mxN]; int l, n, m, x; vector<pair<ll,int>> t; vi s, w; void init(int L, int N, vll T, vi W, int X, int M, vi S) { l = L, n = N, m = M, x = X; int i = 0; for(auto u : T) t.pb({u,i}),i++; for(auto u : S) s.pb(u); for(auto u : W) w.pb(u); w.pb(x); } ll arrival_time(ll Y){ S[0].clear(); for(auto cur : t) S[0].insert({cur.first,cur.second}); S[0].insert({Y,n}); for(int i = 0; i < m-1; i++){ S[i+1].clear(); ll dis = s[i+1]-s[i], mx = 0, mx2 = 0, mxu = -1, pre=-1; for(auto cur : S[i]){ auto u = cur.first; auto ind = cur.second; auto speed = w[ind]; if(u!=pre) mx = max(mx, mx2); pre = u; S[i+1].insert({max(u+dis*speed,mx),ind}); mx2 = max(mx2, u+dis*speed); } } for(auto cur : S[m-1]) if(cur.second==n) return cur.first; return -1; }

Compilation message (stderr)

overtaking.cpp: In function 'll arrival_time(ll)':
overtaking.cpp:33:48: warning: unused variable 'mxu' [-Wunused-variable]
   33 |         ll dis = s[i+1]-s[i], mx = 0, mx2 = 0, mxu = -1, pre=-1;
      |                                                ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...