Submission #825630

#TimeUsernameProblemLanguageResultExecution timeMemory
825630MohamedAhmed04Arranging Tickets (JOI17_arranging_tickets)C++14
10 / 100
384 ms468 KiB
#include <bits/stdc++.h>

using namespace std ;

const int MAX = 22 ;

int arr[MAX] ;
int n , m ;

int L[MAX] , R[MAX] , C[MAX] ;

int cnt[MAX] ;

void Apply1(int l , int r , int x)
{
	for(int i = l ; i < r ; ++i)
		cnt[i] += x ;
}

void Apply2(int l , int r , int x)
{
	for(int i = 1 ; i <= n ; ++i)
	{
		if(i < l || i >= r)
			cnt[i] += x ;
		else
			cnt[i] -= x ;
	}
}

int main()
{
	ios_base::sync_with_stdio(0) ;
	cin.tie(0) ;
	cin>>n>>m ;
	for(int i = 0 ; i < m ; ++i)
	{
		cin>>L[i]>>R[i]>>C[i] ;
		if(L[i] > R[i])
			swap(L[i] , R[i]) ;
	}
	int ans = m ;
	for(int mask = 0 ; mask < (1 << m) ; ++mask)
	{
		memset(cnt , 0 , sizeof(cnt)) ;
		for(int bit = 0 ; bit < m ; ++bit)
		{
			Apply1(L[bit] , R[bit] , C[bit]) ;
			if((mask & (1 << bit)))
				Apply2(L[bit] , R[bit] , C[bit]) ;
		}
		int Max = 0 ;
		for(int i = 1 ; i <= n ; ++i)
			Max = max(Max , cnt[i]) ;
		ans = min(ans , Max) ;
	}
	return cout<<ans<<"\n" , 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...
#Verdict Execution timeMemoryGrader output
Fetching results...