Submission #1190046

#TimeUsernameProblemLanguageResultExecution timeMemory
11900468pete8Long Distance Coach (JOI17_coach)C++20
71 / 100
2095 ms10600 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define f first #define s second #define pii pair<int,int> #define ppii pair<int,pii> #define vi vector<int> #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define F(n) for(int i=0;i<n;i++) #define lb lower_bound #define ub upper_bound #define fastio ios::sync_with_stdio(false);cin.tie(NULL); #pragma GCC target ("avx2") #pragma GCC optimization ("O3") #pragma GCC optimization ("unroll-loops") #define sz(x) (int)((x).size()) #define int long long using namespace std; const int mod=1e9+7,mxn=3e5,inf=1e18,minf=-1e18,lg=30,Mxn=1e9; //#undef int int n,k,m,d,q,X,W,T; void setIO(string name){ ios_base::sync_with_stdio(0); cin.tie(0); freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout); } int S[mxn+10],D[mxn+10],C[mxn+10]; int dp[mxn+10],pref[mxn+10]; bool cmp(pii a,pii b){return a.f<b.f;} int32_t main(){ fastio cin>>X>>n>>m>>W>>T; for(int i=1;i<=n;i++)cin>>S[i]; sort(S+1,S+n+1); vector<pii>pass(m); for(auto &i:pass)cin>>i.f>>i.s; sort(all(pass)); for(int i=1;i<=m;i++){ D[i]=pass[i-1].f; C[i]=pass[i-1].s+C[i-1]; pref[i]=inf; } S[n+1]=X; for(int i=1;i<=n+1;i++){ auto it=upper_bound(all(pass),make_pair(S[i]%T,0),cmp)-pass.begin()-1; if(it<0||(pass[it]).f>(S[i]%T))continue; pref[it+1]=min(pref[it+1],S[i]); } dp[0]=W*(1+(X/T)); for(int i=1;i<=m;i++){ dp[i]=dp[i-1]+(W*(1+((X-D[i])/T))); if(pref[i]==inf)continue; for(int j=1;j<=i;j++){ dp[i]=min(dp[i],dp[j-1]+C[i]-C[j-1]+(i-j+1)*(W*((pref[i]/T)))); } } cout<<dp[m]; } /* */

Compilation message (stderr)

coach.cpp: In function 'void setIO(std::string)':
coach.cpp:27:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |         freopen((name+".in").c_str(),"r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
coach.cpp:28:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |         freopen((name+".out").c_str(),"w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...