Crazy

Сума од апсолутни разлики (Тип колоквиумска задача)

Oct 31st, 2017
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.41 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.     static int solve(int numbers[], int N, int K) {
  7.         int k = 2;
  8.         int j, i;
  9.         int [][] maxabs = new int[K+1][N];
  10.  
  11.         while(k <= K){
  12.             for(j = k-1 ; j < N; j++){
  13.                 for(i = 0; i < j; i++ ){
  14.                     int abs = Math.abs(numbers[i] - numbers[j]) + maxabs[k-1][i];
  15.                     if(abs > maxabs[k][j])
  16.                         maxabs[k][j] = abs;
  17.                 }
  18.             }
  19.                 k++;
  20.         }
  21.         int max = 0;
  22.         for(i = 0; i < N; i++){
  23.             if(maxabs[K][i] > max)
  24.                 max = maxabs[K][i];
  25.         }
  26.  
  27.  
  28.         return max;
  29.     }
  30.  
  31.     public static void main(String[] args) throws Exception {
  32.         int i,j,k;
  33.  
  34.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  35.         StringTokenizer st = new StringTokenizer(br.readLine());
  36.         int N = Integer.parseInt(st.nextToken());
  37.         int K = Integer.parseInt(st.nextToken());
  38.  
  39.         int numbers[] = new int[N];
  40.  
  41.         st = new StringTokenizer(br.readLine());
  42.         for (i=0;i<N;i++) {
  43.             numbers[i] = Integer.parseInt(st.nextToken());
  44.         }
  45.  
  46.         int res = solve(numbers, N, K);
  47.         System.out.println(res);
  48.  
  49.         br.close();
  50.  
  51.     }
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment