Advertisement
Guest User

Untitled

a guest
Mar 25th, 2012
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.98 KB | None | 0 0
  1.     int lefts [];
  2.     int rights [];
  3.    
  4.     public void solve () throws Exception {
  5.         int n = nextInt();
  6.         int k = nextInt();
  7.         lefts = new int [n];
  8.         rights = new int [n];
  9.        
  10.         for (int i = 0; i < n; i++) {
  11.             lefts [i] = nextInt();
  12.             rights [i] = nextInt();
  13.         }
  14.        
  15.         int m = nextInt();
  16.         int r [] = new int [k + 1];
  17.        
  18.         for (int i = 0; i < m; i++) {
  19.             for (int j = 0; j <= k; j++) {
  20.                 r [j] = -1;
  21.             }
  22.            
  23.             int ll = nextInt() - 1;
  24.             int rr = nextInt() - 1;
  25.             int ret = 0;
  26.             for (int j = ll; j <= rr; j++) {
  27.                 r [lefts[j]] = max (r [lefts[j]], rights[j]);
  28.             }
  29.            
  30.             int start = -1;
  31.             int right = -1;
  32.             for (int j = 0; j <= k; j++) {
  33.                 if (r[j] != -1) {
  34.                     start = j;
  35.                     right = r [j];
  36.                     break;
  37.                 }
  38.             }
  39.            
  40.             for (int j = start + 1; j <= k; j++) {
  41.                 if (r[j] == -1) continue;
  42.                 if (j > right) {
  43.                     ret++;
  44.                     right = r [j];
  45.                 } else {
  46.                     right = max (right, r[j]);
  47.                 }
  48.             }
  49.            
  50.             ret++;
  51.             out.println((ret * 2));
  52.         }
  53.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement