Submission #1178273

#TimeUsernameProblemLanguageResultExecution timeMemory
1178273biankRoom Temperature (JOI24_ho_t1)C++20
35 / 100
1 ms468 KiB
#include <bits/stdc++.h> using namespace std; #define forn(i,n) for(int i=0;i<int(n);i++) #define forsn(i,s,n) for(int i=int(s);i<int(n);i++) #define dforn(i,n) for(int i=int(n)-1;i>=0;i--) #define dforsn(i,s,n) for(int i=int(n)-1;i>=int(s);i--) #define fst first #define snd second #define pb push_back #define eb emplace_back #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() typedef long long ll; typedef vector<ll> vll; typedef vector<int> vi; typedef pair<int,int> ii; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n,t; cin>>n>>t; vi a(n); forn(i,n) cin>>a[i]; vi p(n); iota(all(p),0); sort(all(p),[&](const int &lhs, const int &rhs){ return a[lhs]%t<a[rhs]%t; }); if(a[p.front()]%t==a[p.back()]%t){ cout<<"0\n"; return 0; } int ans=t; forn(i,n){ int mini=a[p[i]]%t; int maxi=a[p[(i+n-1)%n]]%t; if(maxi<=mini){ if(a[p[(i+n-1)%n]]==a[p[(i+n-1)%n]]%t) break; maxi+=t; } int mid=(mini+maxi)/2; ans=min(ans,max(maxi-mid,mid-mini)); } cout<<ans<<'\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...