203912026-01-06 17:30:45horkaTV szolgáltatókcpp17Elfogadva 40/4087ms5252 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
bool r1(array<int, 2> a, array<int, 2> b)
{
	return (a[1]<b[1] || (a[1]==b[1] && a[0]<b[0]));
}
signed main() {
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int n,k; cin>>n>>k;
	vector<array<int, 2>> v(n+2);
	vector<int> lehet;
	for(int i=1; i<=n; i++)
	{
		cin>>v[i][0]>>v[i][1];
		lehet.push_back(v[i][0]);
		lehet.push_back(v[i][1]-k+1);
	}
	sort(lehet.begin(),lehet.end());
	lehet.erase(unique(lehet.begin(),lehet.end()),lehet.end());
	int m=lehet.size();
	vector<int> ert(m);
	sort(v.begin()+1,v.end()-1,r1);
	int tart=1,ossz=0;
	for(int i=0; i<m; i++)
	{
		int jobb=lehet[i]+k-1;
		while(tart<=n && v[tart][1]<=jobb)
		{
			ossz+=v[tart][1];
			tart++;
		}
		ert[i]=(tart-1)*jobb-ossz;
	}
	sort(v.begin()+1,v.end()-1);
	tart=n,ossz=0;
	for(int i=m-1; i>=0; i--)
	{
		int bal=lehet[i];
		while(tart>0 && v[tart][0]>=bal)
		{
			ossz+=v[tart][0];
			tart--;
		}
		ert[i]+=ossz-(n-tart)*bal;
	}
	int ans=1e18;
	for(int i=0; i<m; i++)
		ans=min(ans,ert[i]);
	cout<<ans;



}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms500 KiB
5Elfogadva1/12ms316 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva2/22ms324 KiB
10Elfogadva2/22ms316 KiB
11Elfogadva2/239ms2688 KiB
12Elfogadva2/239ms2876 KiB
13Elfogadva2/239ms2648 KiB
14Elfogadva2/239ms2736 KiB
15Elfogadva2/282ms4984 KiB
16Elfogadva2/282ms5032 KiB
17Elfogadva2/243ms2900 KiB
18Elfogadva2/241ms2904 KiB
19Elfogadva2/243ms2740 KiB
20Elfogadva2/243ms2908 KiB
21Elfogadva1/141ms2904 KiB
22Elfogadva1/141ms2916 KiB
23Elfogadva1/186ms5032 KiB
24Elfogadva1/187ms5228 KiB
25Elfogadva1/186ms5028 KiB
26Elfogadva1/187ms5220 KiB
27Elfogadva1/187ms5252 KiB
28Elfogadva1/186ms5052 KiB