Submission #1337057

#TimeUsernameProblemLanguageResultExecution timeMemory
1337057joacruDodatna (COCI25_dodatna)C++20
0 / 70
1108 ms352588 KiB
#include <iostream>
#include <algorithm>
#include <vector>

#define forn(i,n) for(int i=0;i<(int)n;++i)

#define ALL(v) v.begin(),v.end()
#define SZ(v) (int)v.size()

using namespace std;

const int INF = 90000000;

int C[INF];

int n, k;
vector<int> l, r;

bool check(int m){
	forn(i,n){
		if(r[i] - m < l[i]) continue; // no me sirve
		C[l[i]] += 1;
		C[r[i]-m+1] -= 1;
	}
	int cnt = 0;
	forn(i,INF){
		cnt += C[i];
		C[i] = 0;
		if(cnt >= k) return 1;
	}
	return 0;
}

void solve(){
	cin>>n>>k;
	l.resize(n);
	r.resize(n);
	forn(i,n) cin>>l[i]>>r[i];
	
	int L = 0, R = INF;
	while(R-L>1){
		int M=(L+R)/2;
		if(check(M)) L = M;
		else R = M;
	}
	
	cout<<L<<"\n";
}

int main(){
	
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
	#ifdef LOCAL
	freopen("B.in", "r", stdin);
	int tcs; cin>>tcs;
	while(tcs--)
	#endif
	solve();
	
	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...
#Verdict Execution timeMemoryGrader output
Fetching results...