結果

問題 No.1120 Strange Teacher
ユーザー soto800
提出日時 2020-07-22 21:37:26
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
RE  
実行時間 -
コード長 1,859 bytes
コンパイル時間 1,874 ms
コンパイル使用メモリ 179,128 KB
実行使用メモリ 8,092 KB
最終ジャッジ日時 2024-06-22 14:27:51
合計ジャッジ時間 3,879 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24 RE * 3
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
using namespace std;
#define lli long long int
#define REP(i,s,n) for(lli i=s;i<n;i++)
#define NUM 2520
#define INF (1LL<<50)
#define DEBUG 0
#define mp(a,b) make_pair(a,b)
#define SORT(V) sort(V.begin(),V.end())
#define PI (3.141592653589794)
#define TO_STRING(VariableName) # VariableName
#define LOG(x) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<endl;
#define LOG2(x,y) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<endl;
#define LOG3(x,y,z) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<" "<<TO_STRING(z)<<"="<<z<<endl;
#define LOG4(w,x,y,z) if(DEBUG)cout<<TO_STRING(w)<<"="<<w<<" "<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<" "<<TO_STRING(z)<<"="<<z<<endl;
template<class T>bool chmax(T & a, const T & b) { if (a < b) { a = b; return 1; } return 0; }
template<class T>bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; }
void solve(){
lli n;
cin>>n;
vector<lli> a(n),b(n);
vector<lli> c(n);
vector<pair<lli,pair<lli,lli>>> v(n);
lli sumA=0,sumB=0;
REP(i,0,n){
cin>>a[i];
sumA+=a[i];
}
REP(i,0,n){
cin>>b[i];
sumB+=b[i];
}
REP(i,0,n){
v[i]={a[i]-b[i],{a[i],b[i]}};
}
SORT(v);
bool ok = true;
REP(i,0,n){
if(a[i]!=b[i]){
ok = false;
break;
}
}
if(ok){
cout<<0<<endl;
return;
}
lli diff = sumA-sumB;
if(diff%(n-2)!=0){
cout<<-1<<endl;
return;
}
lli ans = diff/(n-2);
lli lef = ans;
LOG(ans);
REP(i,0,n){
lli use = ans-(v[i].second.first-v[i].second.second);
if(use%2!=0){
cout<<-1<<endl;
return;
}
use/=2;
LOG4(i,a[i],b[i],use);
lef -= use;
if(lef<0){
cout<<-1<<endl;
return;
}
}
if(lef!=0){
cout<<-1<<endl;
}
else{
cout<<ans<<endl;
}
}
int main(){
// cout << fixed << setprecision(5);
lli t=1;
//cin>>t;
while(t--)solve();
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0