Advertisement
Guest User

Untitled

a guest
Dec 21st, 2017
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long int v0, v1, k;
  6.  
  7. struct st{
  8.     long long int differenza;
  9.     long long int vmax;
  10.     long long int vmin;
  11.     long long int pmax;
  12. };
  13.  
  14. st v[10000000];
  15. st j;
  16.  
  17. bool comp(st &t, st &r){
  18.     return t.differenza>r.differenza;
  19. }
  20.  
  21. long long solve(int n, int* m, int* p){
  22.     for(int x=0; x<n; x++){
  23.         j.differenza=abs(m[x]-p[x]);
  24.         if(m[x]>p[x]){
  25.             j.vmax=m[x];
  26.             j.pmax=0;
  27.             j.vmin=p[x];
  28.         }else{
  29.             j.vmax=p[x];
  30.             j.pmax=1;
  31.             j.vmin=m[x];
  32.         }
  33.         v[x]=j;
  34.     }
  35.     sort(v, v+n, comp);
  36.     for(int x=0; x<n; x++){
  37.         if(v[x].pmax==0){
  38.             if(v0<n/2){
  39.                 v0++;
  40.                 k+=v[x].vmax;
  41.             }else{
  42.                 v1++;
  43.                 k+=v[x].vmin;
  44.             }
  45.         }else{
  46.             if(v1<n/2){
  47.                 v1++;
  48.                 k+=v[x].vmax;
  49.             }else{
  50.                 v0++;
  51.                 k+=v[x].vmin;
  52.             }
  53.         }
  54.     }
  55.     return k;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement