Submission #389812

#TimeUsernameProblemLanguageResultExecution timeMemory
389812ogibogi2004Pinball (JOI14_pinball)C++14
11 / 100
1091 ms47196 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll INF=2e15;
const int MAXM=1e5+6;
struct device
{
	ll row,a,b,c,d;
};
device d[MAXM];
int n,m;
int main()
{
	cin>>m>>n;
	for(int i=2;i<m+2;i++)
	{
		d[i].row=i;
		cin>>d[i].a>>d[i].b>>d[i].c>>d[i].d;
	}
	ll ans=INF;
	for(int mask=0;mask<(1<<m);mask++)
	{
		set<int>s;
		for(int i=1;i<=n;i++)
		{
			int u=i;
			for(int j=2;j<m+2;j++)
			{
				if(mask&(1<<(j-2)))
				{
					if(d[j].a<=u&&d[j].b>=u)
					{
						u=d[j].c;
					}
				}
			}
			s.insert(u);
		}
		if(s.size()>1)
		{
			continue;
		}
		ll sum=0;
		for(int j=2;j<m+2;j++)
		{
			if(mask&(1<<(j-2)))
			{
				sum+=d[j].d;
			}
		}
		if(sum<ans)ans=sum;
	}
	if(ans==INF)cout<<"-1\n";
	else cout<<ans<<endl;
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...