Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.StringTokenizer;
- public class SumOfAbsoluteDifferences {
- static int[] sort1(int a[])
- {
- boolean sortirana = false;
- while (!sortirana)
- {
- sortirana = true;
- for (int i = 0; i < a.length-1; i++)
- {
- if (a[i] < a[i+1])
- {
- int t = a[i];
- a[i] = a[i+1];
- a[i+1] = t;
- sortirana = false;
- }
- }
- }
- return a;
- }
- static int[] absolutniRazliki(int a[], int n, int k)
- {
- int[] absRazliki = new int[a.length-1];
- int j = 0;
- for (int i = 1; i < a.length; i++)
- {
- absRazliki[j++] = Math.abs(a[i] - a[i-1]);
- //System.out.printf("%d: %d - %d = %d\n",j-1, a[i], a[i-1], absRazliki[j-1]);
- }
- /*
- for (int i = 0; i < absRazliki.length; i++)
- {
- System.out.println(absRazliki[i]);
- }*/
- return absRazliki;
- }
- static int suma(int n[])
- {
- int suma = 0;
- for (int i = 0; i < n.length; i++)
- suma += n[i];
- return suma;
- }
- static int solve(int numbers[], int N, int K) {
- // vasiot kod ovde
- // mozete da napisete i drugi funkcii dokolku vi se potrebni
- int[] razliki = absolutniRazliki(numbers, N, K);
- int s = suma(razliki);
- //System.out.println("Suma: " + s);
- int broevi[] = new int[K];
- int l = 0;
- int d = 0;
- int a[] = numbers;
- a = sort1(a);
- int j = 0;
- for (int i = 0; i < K; i++)
- {
- broevi[j++] = ((i % 2) == 0) ? a[a.length-d++-1] : a[l++];
- }
- //System.out.println("Broevi:");
- for (int i = 0; i < broevi.length; i++)
- {
- //System.out.println(broevi[i]);
- }
- //System.out.println("/broevi");
- s = suma(absolutniRazliki(broevi, 0, 0));
- //System.out.println("Max suma: " + s);
- return s;
- }
- public static void main(String[] args) throws Exception {
- int i,j,k;
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- StringTokenizer st = new StringTokenizer(br.readLine());
- int N = Integer.parseInt(st.nextToken());
- int K = Integer.parseInt(st.nextToken());
- int numbers[] = new int[N];
- st = new StringTokenizer(br.readLine());
- for (i=0;i<N;i++) {
- numbers[i] = Integer.parseInt(st.nextToken());
- }
- int res = solve(numbers, N, K);
- System.out.println(res);
- br.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement