結果
問題 | No.2248 max(C)-min(C) |
ユーザー |
|
提出日時 | 2023-03-17 21:48:05 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 142 ms / 3,000 ms |
コード長 | 1,141 bytes |
コンパイル時間 | 869 ms |
コンパイル使用メモリ | 86,528 KB |
最終ジャッジ日時 | 2025-02-11 12:52:10 |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 51 |
ソースコード
#include<iostream>#include<vector>#include<tuple>#include<algorithm>using namespace std;using ll=long long;#define rep(i,n) for(int i=0;i<n;i++)#define rrep(i,n) for(int i=(n)-1;i>=0;i--)#define all(v) v.begin(),v.end()#define rall(v) v.rbegin(),v.rend()template<class T> bool chmax(T &a, T b){if (a < b){a = b;return true;} else return false;}template<class T> bool chmin(T &a, T b){if (a > b){a = b;return true;} else return false;}int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin>>n;vector<int>A(n),B(n);rep(i,n)cin>>A[i];rep(i,n)cin>>B[i];vector<tuple<int,int,int>>V;int m=1<<30;rep(i,n){if(A[i]<B[i])swap(A[i],B[i]);chmin(m,A[i]);V.push_back(make_tuple(A[i],i,0));V.push_back(make_tuple((A[i]+B[i])/2,i,1));V.push_back(make_tuple(B[i],i,2));}sort(rall(V));int ans=1<<30;for(auto[p,i,t]:V){chmin(ans,p-m);if(t==0){chmin(m,(A[i]+B[i])/2);}else if(t==1){chmin(m,B[i]);}else{break;}}cout<<ans<<"\n";}