結果
問題 | No.2248 max(C)-min(C) |
ユーザー |
|
提出日時 | 2023-03-17 22:02:40 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 537 ms / 3,000 ms |
コード長 | 630 bytes |
コンパイル時間 | 664 ms |
コンパイル使用メモリ | 74,904 KB |
実行使用メモリ | 16,128 KB |
最終ジャッジ日時 | 2024-09-18 11:01:33 |
合計ジャッジ時間 | 12,343 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 51 |
ソースコード
#include<iostream> #include<set> using namespace std; int N; int A[2<<17][3]; int id[2<<17]; int main() { cin>>N; for(int i=0;i<N;i++)cin>>A[i][0]; for(int i=0;i<N;i++)cin>>A[i][1]; set<pair<int,int> >S; for(int i=0;i<N;i++) { int a=A[i][0],b=A[i][1]; if(a>b)swap(a,b); A[i][0]=a; A[i][1]=(a+b)/2; A[i][2]=b; S.insert(make_pair(a,i)); } int ans=S.rbegin()->first-S.begin()->first; while(true) { pair<int,int>p=*S.begin(); S.erase(S.begin()); int i=p.second; if(id[i]==2)break; id[i]++; S.insert(make_pair(A[i][id[i]],i)); ans=min(ans,S.rbegin()->first-S.begin()->first); } cout<<ans<<endl; }