Submission #1008626

#TimeUsernameProblemLanguageResultExecution timeMemory
1008626aaaaaarroz추월 (IOI23_overtaking)C++17
39 / 100
3573 ms780 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int l,n,x,m; vector<ll>t; vector<int>w,s; void init(int L,int N,vector<ll>T,vector<int>W,int X,int M,vector<int>S){ l=L; n=N; t=T; w=W; x=X; m=M; s=S; } ll arrival_time(ll arrival){ vector<ll>ex(n+1); vector<pair<ll,ll>>time(n+1); for(int i=0;i<n;i++){ time[i]={t[i],i}; time[n]={arrival,n}; } for(int i=1;i<m;i++){ for(int j=0;j<n;j++){ ex[j]=time[j].first+(1ll*w[j]*(s[i]-s[i-1])); } ex[n]=(time[n].first+(1ll*x*(s[i]-s[i-1]))); map<ll,vector<ll>>nv; for(int j=0;j<=n;j++){ nv[time[j].first].push_back(j); } ll mx=0; auto newtime=time; for(auto [key, val]:nv){ for(auto v:val){ newtime[v]={v,max(mx,ex[v])}; } for(auto v:val){ mx=max(mx,ex[v]); } } sort(newtime.begin(),newtime.end()); for(int j=0;j<=n;j++){ time[j]={newtime[j].second,newtime[j].first}; } } return time[n].first; }
#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...