fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. ll swp = 0 , p1[2]={0},p2[4]={0};
  5. map< ll,pair<ll,ll> > mp;
  6. map< ll,pair<ll,ll> >::iterator it;
  7. ll oneswp(ll a[],ll b[],ll v,ll n, ll m)
  8. {
  9. ll ans=abs(v);
  10. for(ll i=0;i<n;i++)
  11. {
  12. for(ll j=0;j<m;j++)
  13. {
  14. if(ans > abs(v-(2*a[i]-2*b[j])))
  15. {
  16. ans = abs(v-(2*a[i]-2*b[j]));
  17. p1[0] = i+1;
  18. p1[1] = j+1;
  19. }
  20. }
  21. }
  22. return ans;
  23. }
  24. ll twoswp(ll a[],ll b[],ll v,ll n ,ll m)
  25. {
  26. ll ans = abs(v),s=0;
  27. for(ll i=0;i<n-1;i++)
  28. {
  29. for(ll j=i+1;j<n;j++)
  30. {
  31. mp[(2*(a[i]+a[j]))]=pair<ll,ll>(i+1,j+1);
  32. }
  33. }
  34.  
  35. for(ll i=0;i<m-1;i++)
  36. {
  37. for(ll j=i+1;j<m;j++)
  38. {
  39. s=v+2*(b[i]+b[j]);
  40. for(it = mp.begin();it!=mp.end()&&it->first<s;it++);
  41. if(ans > abs(s-it->first))
  42. {
  43. ans = abs(s-(it->first));
  44. p2[0] = it->second.first;
  45. p2[1] = i+1;
  46. p2[2] = it->second.second;
  47. p2[3] = j+1;
  48. }
  49. if(it!= mp.begin())
  50. {
  51. it--;
  52. if(ans > abs(s-(it->first)))
  53. {
  54. p2[0] = it->second.first;
  55. p2[1] = i+1;
  56. p2[2] = it->second.second;
  57. p2[3] = j+1;
  58. }
  59. }
  60.  
  61. }
  62. }
  63. return ans;
  64. }
  65. int main()
  66. {
  67. ios::sync_with_stdio(false);
  68. ll n , m , a[2001] , b[2001] , k , v = 0 , sa = 0 , sb = 0 ,one,two ;
  69. cin >> n;
  70. for(ll i=0;i<n;i++){
  71. cin >> a[i];
  72. sa += a[i];
  73. }
  74. cin >> m;
  75. for(ll i=0;i<m;i++){
  76. cin >> b[i];
  77. sb += b[i];
  78. }
  79. v = sa - sb;
  80. one = oneswp(a,b,v,n,m);
  81. two = twoswp(a,b,v,n,m);
  82. v=abs(v);
  83. if(v<=one&&v<=two){
  84. swp=0;
  85. cout<<v<<"\n";
  86. cout<<swp<<"\n";
  87. }
  88. else if(one <= v && one <= two){
  89. swp = 1;v=one;
  90. cout<<v<<"\n";
  91. cout<<swp<<"\n";
  92. for(ll i=0;i<2;i++){;
  93. cout<<p1[i]<<" ";
  94. }
  95. }
  96. else if(two <= v && two <=one){
  97. swp = 2;v=two;
  98. cout<<v<<"\n";
  99. cout<<swp<<"\n";
  100. for(ll i=0;i<4;i++){
  101. if(i==2)
  102. cout<<"\n";
  103. cout<<p2[i]<<" ";
  104. }
  105. }
  106. return 0;
  107. }
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
0
0