Submission #960005

# Submission time Handle Problem Language Result Execution time Memory
960005 2024-04-09T12:40:39 Z LCJLY Pinball (JOI14_pinball) C++14
0 / 100
260 ms 524288 KB
#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][605][605];
int sz;

int dp(int index, int l, int r){
	if(index==-1){
		if(l<=1&&r>=sz){
			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(index,index,l,l,r,r);
	return memo[index][l][r]=ans;
}

void solve(){
	cin >> n >> m;
	
	vector<int>v;
	for(int x=0;x<n;x++){
		cin >> arr[x][0] >> arr[x][1] >> arr[x][2] >> arr[x][3];
		v.push_back(arr[x][0]);
		v.push_back(arr[x][1]);
		v.push_back(arr[x][2]);
	}
	v.push_back(1);
	v.push_back(m);
	
	sort(v.begin(),v.end());
	v.resize(unique(v.begin(),v.end())-v.begin());
	
	for(int x=0;x<n;x++){
		arr[x][0]=lower_bound(v.begin(),v.end(),arr[x][0])-v.begin()+1;
		arr[x][1]=lower_bound(v.begin(),v.end(),arr[x][1])-v.begin()+1;
		arr[x][2]=lower_bound(v.begin(),v.end(),arr[x][2])-v.begin()+1;
	}
	
	sz=lower_bound(v.begin(),v.end(),m)-v.begin()+1;
	
	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 time Memory Grader output
1 Runtime error 260 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 260 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 260 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 260 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -