This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct coche
{
	int a, b, c, d, e;
};
struct tpos 
{
	int i, j;
};
coche arr[100];
int m, n; 
int simula (const vector<coche> &v, int pos)
{
	tpos t = {pos, 1};
	while (t.j <= m+1)
	{
		for (coche c: v)
		{
			if (c.e != t.j) continue;
			if (c.a <= t.i && t.i <= c.b)
			{
				t.i = c.c;
				break;
			}
		}
		t.j++;
	}
	return t.i;
}
ll poder (int mask)
{
	ll costo = 0;
	vector <coche> v;
	int x = 0;
	for (int i = 1; i <= mask; i<<=1, x++)
		if (mask & i)
		{
			costo+=arr[x].d;
			v.push_back(arr[x]);
		}		
	int pos;
	int cae = simula(v, 1);
	for (int i = 2; i <= n; i++)
	{
		if (simula(v, i) != cae)
			return -1;
	}
	return costo;
}
void solve()
{
	cin >> m >> n;
	for (int i = 0; i < m; i++)
	{
		cin >> arr[i].a >> arr[i].b >> arr[i].c >> arr[i].d;
		arr[i].e = i+1;
	}
		
	ll maxi = (1LL << 60);
	int lim = 1 << m;
	for (int i = 1; i < lim; i++)
	{
		ll t = poder(i);
		//cout << t << endl;
		if (t == -1) continue;
		maxi = min (maxi, t);
	}
		
	if (maxi ==  (1LL << 60)) maxi = -1;
	cout << maxi << '\n';
}
int main() 
{
	int t = 1; //cin >> t;
	while (t--)
		solve();
	return 0;
}
Compilation message (stderr)
pinball.cpp: In function 'long long int poder(int)':
pinball.cpp:44:6: warning: unused variable 'pos' [-Wunused-variable]
   44 |  int pos;
      |      ^~~| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |