Submission #1341090

#TimeUsernameProblemLanguageResultExecution timeMemory
1341090JuanJLRoom Temperature (JOI24_ho_t1)C++20
100 / 100
400 ms27808 KiB
#include <bits/stdc++.h>

#define ALL(x) x.begin(),x.end()
#define forn(i,a,b) for(int i = a; i<b; i++)

using namespace std;
typedef long long ll;

ll actualres(multiset<ll> &s){
	ll mini = *s.begin();
	ll maxi = *(--s.end());
	ll res = maxi-mini;
	return res;
}

int main(){
	ll n,t; cin>>n>>t;
	vector<ll> a(n); forn(i,0,n) cin>>a[i];

	sort(ALL(a));

	ll opt = a[0];
	forn(i,0,n){
		ll cnt = a[i]-opt;
		cnt/=t;
		a[i]-=cnt*t;
	}

	sort(ALL(a));

	multiset<ll> s;
	forn(i,0,n) s.insert(a[i]);

	ll res = actualres(s);
	
	for(int i = n-1; i>=0; i--){
		auto it = --s.end();
		ll val = *it;
		s.erase(it);
		val-=t;
		s.insert(val);
		res=min(res,actualres(s));
	}

	cout<<(res+1)/2<<'\n';

	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...