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;
}
posted @ 2025-03-03 13:49  Devpp  阅读(8)  评论(0)    收藏  举报