Guest User

Untitled

a guest
Jan 18th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3. public class snowboots {
  4. static int n,k;
  5. static int[] field,a,b; //a,b --> strength, distance
  6. static int pos;
  7. public static void main(String[] args) throws IOException {
  8. BufferedReader br = new BufferedReader(new FileReader("snowboots.in"));
  9. PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("snowboots.out")));
  10. StringTokenizer st = new StringTokenizer(br.readLine());
  11. n = Integer.parseInt(st.nextToken());
  12. k = Integer.parseInt(st.nextToken());
  13. st = new StringTokenizer(br.readLine());
  14. field = new int[n];
  15. a = new int[k];
  16. b = new int[k];
  17. for (int i = 0; i < n; i++)
  18. field[i] = Integer.parseInt(st.nextToken());
  19. for (int i = 0; i < k; i++) {
  20. st = new StringTokenizer(br.readLine());
  21. a[i] = Integer.parseInt(st.nextToken());
  22. b[i] = Integer.parseInt(st.nextToken());
  23. }
  24.  
  25. pw.println(solve());
  26. pw.close();
  27.  
  28. }
  29. static int solve() {
  30. pos = 0;
  31. int i = 0; //which boot are we on?
  32. while(pos < n-1) {
  33.  
  34. while(move(i)); //move with boot i as far as possible
  35.  
  36. i++; //use the next boot
  37.  
  38. }
  39. i--;
  40. return i;
  41. }
  42. static boolean move(int c) {
  43. for (int i = pos+b[c]; i > pos; i--) {
  44. if (i < n && field[i] <= a[c]) { //snow has to be less than boot strength
  45. pos = i;
  46. return true;
  47. }
  48. }
  49. return false;
  50. }
  51. }
Add Comment
Please, Sign In to add comment