Submission #570671

#TimeUsernameProblemLanguageResultExecution timeMemory
570671AGESimfonija (COCI19_simfonija)C++14
0 / 110
544 ms65536 KiB
#include<bits/stdc++.h> #define F first #define S second #define pb push_back using namespace std; const int N=1e6,M=2e3; int a[N],b[N]; main() { int n,m; cin>>n>>m; map<int,int>mp; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) cin>>b[i]; for(int i=0;i<n;i++) mp[a[i]-b[i]]++; int neg=0,pos=0; for(auto x:mp){ if(x.F<0) neg+=x.S; else pos+=x.S; } int ans=0,anss=1e18; for(int i=0;i<n;i++) ans+=abs(a[i]-b[i]); anss=min(abs(ans),anss); for(int j=-2e6;j>=0;j--){ ans-=pos; ans+=neg; anss=min(anss,abs(ans)); neg+=mp[-j]; pos-=mp[-j]; } ans=0,pos=0,neg=0; for(int i=0;i<n;i++) ans+=abs(a[i]-b[i]); for(auto x:mp) if(x.F<0) neg+=x.S; else pos+=x.S; for(int j=0;j<=2e6;j++){ ans-=neg; ans+=pos; anss=min(anss,abs(ans)); neg-=mp[-j]; pos+=mp[-j]; } cout<<anss<<endl; return 0; }

Compilation message (stderr)

simfonija.cpp:9:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    9 | main()
      | ^~~~
simfonija.cpp: In function 'int main()':
simfonija.cpp:36:20: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+18' to '2147483647' [-Woverflow]
   36 |     int ans=0,anss=1e18;
      |                    ^~~~
#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...
#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...