Submission #1103430

#TimeUsernameProblemLanguageResultExecution timeMemory
1103430irmuunSoccer (JOI17_soccer)C++17
35 / 100
70 ms23828 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll h,w; cin>>h>>w; ll a,b,c; cin>>a>>b>>c; ll n; cin>>n; ll s[n+5],t[n+5]; for(ll i=1;i<=n;i++){ cin>>s[i]>>t[i]; } vector<pair<ll,ll>>g[n+5]; for(ll i=1;i<=n;i++){ for(ll j=1;j<=n;j++){ if(i==j) continue; ll d=min(abs(s[i]-s[j]),abs(t[i]-t[j])); ll e=max(abs(s[i]-s[j]),abs(t[i]-t[j])); ll ans=min({c*(d+e),d*c+e*a+b}); g[i].pb({j,ans}); } } vector<ll>dist(n+5,1e18); set<pair<ll,ll>>st; dist[1]=0; st.insert({0,1}); while(!st.empty()){ ll D=st.begin()->ff,i=st.begin()->ss; st.erase(st.begin()); if(dist[i]!=D) continue; for(auto [j,w]:g[i]){ if(D+w<dist[j]){ dist[j]=D+w; st.insert({dist[j],j}); } } } cout<<dist[n]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...