Advertisement
madopew

Untitled

Oct 7th, 2019
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.00 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class olimpiada {
  4.     public static void main(String[] args) {
  5.         //input
  6.         Scanner scanner = new Scanner(System.in);
  7.         String[] temp = scanner.nextLine().split(" ");
  8.         int n = Integer.parseInt(temp[0]);
  9.         if(n < 1 || n > 100000) return;
  10.         int k = Integer.parseInt(temp[1]);
  11.         if(k < 1 || k > 20) return;
  12.         int[][] timetable = new int[k][2];
  13.         for(int i = 0; i < k; i++) {
  14.             temp = scanner.nextLine().split(" ");
  15.             timetable[i][0] = Integer.parseInt(temp[0]);
  16.             timetable[i][1] = Integer.parseInt(temp[1]);
  17.             if(timetable[i][1] > 2*n) return;
  18.             if(timetable[i][0] < 0 || timetable[i][0] > timetable[i][1]) return;
  19.         }
  20.  
  21.  
  22.         //calculating
  23.         int[][] timeGaps = new int[1][2];
  24.         timeGaps[0][0] = 0;
  25.         timeGaps[0][1] = 0;
  26.  
  27.         for(int i = 0; i < k; i++) {
  28.             int amount = timetable[i][1] - timetable[i][0]+1;
  29.             int[][] timeGapsTemp = new int[amount * timeGaps.length][2];
  30.             int index = 0;
  31.             for(int j = 0; j < timeGaps.length; j++) {
  32.                 for (int l = 0; l < amount; l++) {
  33.                     timeGapsTemp[index][(i+1) % 2] = timeGaps[j][(i+1) % 2];
  34.                     int tempTime = timetable[i][0] - timeGaps[j][0] - timeGaps[j][1] + l;
  35.                     if (tempTime > n)
  36.                         continue;
  37.                     timeGapsTemp[index][i % 2] += tempTime;
  38.                     int timeLeft = 2 * n - timeGapsTemp[index][0] - timeGapsTemp[index][1];
  39.                     if(timeGapsTemp[index][i % 2] == n && timeGapsTemp[index][(i+1) % 2] + timeLeft == n) {
  40.                         System.out.println("YES");
  41.                         System.out.println(i+1);
  42.                         return;
  43.                     }
  44.                     index++;
  45.                 }
  46.             }
  47.             timeGaps = timeGapsTemp;
  48.         }
  49.         System.out.println("NO");
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement