Diary_3.3
1. Light Switches
const int maxn = 2e5+10;
int a[maxn], n, k;
void solve(){
cin >> n >> k;
int t = 2*k, mx = 0;
set<int> q;
for(int i=0;i <n; i++){
cin>> a[i];
mx = max(mx, a[i]);
}
for(int i=0; i<n; i++){
int last = mx-a[i];
int cnt = last/t;
a[i] += cnt*t;
}
for(int i=0; i<n; i++){
q.insert(a[i]);
}
for(int i=0; i<=n; i++){
int l = *q.begin();
int r = *q.rbegin();
if(l+k > r){
cout << r << endl;
return;
}else{
q.erase(q.begin());
q.insert(l+t);
}
}
cout << -1 << endl;
}

浙公网安备 33010602011771号