Advertisement
Dev-san

Untitled

Oct 22nd, 2014
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.44 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.util.StringTokenizer;
  4.  
  5. public class SumOfAbsoluteDifferences {
  6.    
  7.     static int[] sort1(int a[])
  8.     {
  9.         boolean sortirana = false;
  10.         while (!sortirana)
  11.         {
  12.             sortirana = true;
  13.             for (int i = 0; i < a.length-1; i++)
  14.             {
  15.                 if (a[i] < a[i+1])
  16.                 {
  17.                     int t =  a[i];
  18.                     a[i] = a[i+1];
  19.                     a[i+1] = t;
  20.                     sortirana = false;
  21.                 }
  22.             }
  23.            
  24.         }
  25.         return a;
  26.     }
  27.     static int[] absolutniRazliki(int a[], int n, int k)
  28.     {
  29.         int[] absRazliki = new int[a.length-1];
  30.         int j = 0;
  31.        
  32.         for (int i = 1; i < a.length; i++)
  33.         {
  34.             absRazliki[j++] = Math.abs(a[i] - a[i-1]);
  35.             //System.out.printf("%d: %d - %d = %d\n",j-1, a[i], a[i-1], absRazliki[j-1]);
  36.         }
  37.         /*
  38.         for (int i = 0; i < absRazliki.length; i++)
  39.         {
  40.             System.out.println(absRazliki[i]);
  41.         }*/
  42.         return absRazliki;
  43.     }
  44.    
  45.     static int suma(int n[])
  46.     {
  47.         int suma = 0;
  48.         for (int i = 0; i < n.length; i++)
  49.             suma += n[i];
  50.         return suma;
  51.     }
  52.    
  53.     static int solve(int numbers[], int N, int K) {
  54.         // vasiot kod ovde
  55.         // mozete da napisete i drugi funkcii dokolku vi se potrebni
  56.         int[] razliki = absolutniRazliki(numbers, N, K);
  57.         int s = suma(razliki);
  58.         //System.out.println("Suma: " + s);
  59.        
  60.         int broevi[] = new int[K];
  61.         int l = 0;
  62.         int d = 0;
  63.         int a[] = numbers;
  64.         a = sort1(a);
  65.         int j = 0;
  66.         for (int i = 0; i < K; i++)
  67.         {
  68.                 broevi[j++] = ((i % 2) == 0) ? a[a.length-d++-1] : a[l++];
  69.         }
  70.         //System.out.println("Broevi:");
  71.         for (int i = 0; i < broevi.length; i++)
  72.         {
  73.             //System.out.println(broevi[i]);
  74.         }
  75.         //System.out.println("/broevi");
  76.         s = suma(absolutniRazliki(broevi, 0, 0));
  77.         //System.out.println("Max suma: " + s);
  78.         return s;
  79.     }
  80.    
  81.     public static void main(String[] args) throws Exception {
  82.         int i,j,k;
  83.        
  84.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  85.         StringTokenizer st = new StringTokenizer(br.readLine());
  86.         int N = Integer.parseInt(st.nextToken());
  87.         int K = Integer.parseInt(st.nextToken());
  88.        
  89.         int numbers[] = new int[N];
  90.        
  91.         st = new StringTokenizer(br.readLine());
  92.         for (i=0;i<N;i++) {
  93.             numbers[i] = Integer.parseInt(st.nextToken());
  94.         }
  95.        
  96.         int res = solve(numbers, N, K);
  97.         System.out.println(res);
  98.        
  99.         br.close();
  100.        
  101.     }
  102.    
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement