제출 #1182927

#제출 시각아이디문제언어결과실행 시간메모리
1182927enkhochirRoom Temperature (JOI24_ho_t1)C++20
100 / 100
976 ms71368 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int inf=1e12;
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    int n,t;
    cin>>n>>t;
    pair<int,int> a[n*2];
    for(int i=0; i<n; i++){
        cin>>a[i].first;
        a[i].first%=t;
        a[i].second=i;
        a[i+n].first=a[i].first+t;
        a[i+n].second=i;
    }  
    bool b[n+5]={0};
    sort(a,a+2*n);
    // for(int i=0; i<3*n; i++){
    //     cout<<a[i].first<<" ";
    // }
    // cout<<endl;
    map<int,int> mp;
    int ans=1e18;
    multiset<int> s;
    // map<int,int> hmp;
    for(int i=0; i<2*n; i++){
        if(mp.find(a[i].second)==mp.end()){
            mp[a[i].second]=a[i].first;
            s.insert(a[i].first);
        }
        else{
            s.erase(s.find(mp[a[i].second]));
            mp[a[i].second]=a[i].first;
            s.insert(a[i].first);
        }
        if(s.size()>=n){
            auto it=s.end();
            it--;
            ans=min(ans,*it-*s.begin());
        }
    }
    cout<<ans/2+ans%2<<endl;
    // cout<<ans<<endl;
}   
#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...