Submission #960003

#TimeUsernameProblemLanguageResultExecution timeMemory
960003LCJLYPinball (JOI14_pinball)C++14
11 / 100
71 ms137296 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ld long double #define show(x,y) cout << y << " " << #x << endl; #define show2(x,y,i,j) cout << y << " " << #x << " " << j << " " << #i << endl; #define show3(x,y,i,j,p,q) cout << y << " " << #x << " " << j << " " << #i << " " << q << " " << #p << endl; #define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl; typedef pair<long long,int>pii; //typedef pair<pii,pii>pi2; typedef array<int,3>pi2; mt19937 rng(chrono::system_clock::now().time_since_epoch().count()); int n,m; array<int,4>arr[1005]; //l r to cost int memo[205][205][205]; int dp(int index, int l, int r){ if(index==-1){ if(l<=1&&r>=m){ return 0; } else{ return 1e15; } } if(memo[index][l][r]!=-1) return memo[index][l][r]; int ans=1e15; if(arr[index][2]>=l&&arr[index][2]<=r){ ans=min(ans,dp(index-1,min(l,arr[index][0]),max(r,arr[index][1]))+arr[index][3]); } if(r<l){ ans=min(ans,dp(index-1,arr[index][0],arr[index][1])+arr[index][3]); } ans=min(ans,dp(index-1,l,r)); //show3(l,l,r,r,ans,ans); return memo[index][l][r]=ans; } void solve(){ cin >> n >> m; for(int x=0;x<n;x++){ cin >> arr[x][0] >> arr[x][1] >> arr[x][2] >> arr[x][3]; } memset(memo,-1,sizeof(memo)); int hold=dp(n-1,1,0); if(hold>=1e15){ cout << -1; } else cout << hold; } int32_t main(){ ios::sync_with_stdio(0); cin.tie(0); int t=1; //cin >> t; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...