Submission #731394

#TimeUsernameProblemLanguageResultExecution timeMemory
731394alexddPinball (JOI14_pinball)C++17
29 / 100
1081 ms192256 KiB
#pragma GCC optimize("O3,unroll-loops") #include<bits/stdc++.h> using namespace std; int n,m; int a[100005]; int b[100005]; int c[100005]; long long d[100005]; map<pair<int,int>,long long> dp[100005]; signed main() { ios_base::sync_with_stdio(0);cin.tie(0); cin>>m>>n; for(int i=1;i<=m;i++) { cin>>a[i]>>b[i]>>c[i]>>d[i]; } for(int i=m;i>0;i--) { pair<int,int> cop; dp[i][{a[i],b[i]}] = d[i]; for(auto it:dp[i+1]) { if(it.second == 0) continue; cop = it.first; if(dp[i][cop] > it.second || dp[i][cop]==0) dp[i][cop] = it.second; if(cop.first <= c[i] && c[i]<=cop.second && (dp[i][{min(cop.first, a[i]),max(cop.second,b[i])}]==0 || dp[i][{min(cop.first, a[i]),max(cop.second,b[i])}] > it.second + d[i])) dp[i][{min(cop.first, a[i]),max(cop.second,b[i])}] = it.second + d[i]; } } if(dp[1][{1,n}]==0) dp[1][{1,n}]=-1; cout<<dp[1][{1,n}]; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...