Advertisement
phanindhar1

Q2

Mar 24th, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <cstdio>
  2. #include <string>
  3. #include <vector>
  4. #include <map>
  5. #include <sstream>
  6. #include <algorithm>
  7. #include <set>
  8. #include <cassert>
  9. #include <cstring>
  10.  
  11. using namespace std;
  12.  
  13. #define INF 2000000000
  14.  
  15. struct inter {
  16.     int loc;
  17.     int delta;
  18.  
  19.     bool operator< (inter ot) const {
  20.         return loc<ot.loc;
  21.     }
  22. };
  23.  
  24. inline int read_int() {
  25.     char c;
  26.     while ((c=getchar()) < 48 || c > 57);
  27.     int p = c-48;
  28.     while ((c=getchar()) >= 48 && c <= 57) p=p*10+c-48;
  29.     return p;
  30. }
  31.  
  32. int T, N, M,P;
  33. inter in[20010];
  34. int small;
  35. int big;
  36.  
  37. int main() {
  38.     for (T=read_int(); T; T--) {
  39.         P=read_int();N=read_int(); M=read_int();
  40.         small = INF;
  41.         big = -INF;
  42.  
  43.         in[2*M].loc = N+1;
  44.         in[2*M].delta = 0;
  45.         for (int i = 0; i < M; i++) {
  46.             int w,a,b,c;
  47.             w=read_int();
  48.             a=read_int();
  49.             b=read_int();
  50.             c=read_int();
  51.             if (w==2) c = -c;
  52.  
  53.             in[2*i].delta = c;
  54.             in[2*i+1].delta = -c;
  55.  
  56.             in[2*i].loc = a;
  57.             in[2*i+1].loc = b+1;
  58.         }
  59.  
  60.         sort(in, in+(2*M));
  61.  
  62.         int k = 0;
  63.         int cur = 1;
  64.         for (int i = 0; i <= 2*M; i++) {
  65.             if (in[i].loc > cur) {
  66.                 big = max(big, in[i].loc-1+k);
  67.                 small = min(small, cur+k);
  68.             }
  69.             k += in[i].delta;
  70.             cur = in[i].loc;
  71.         }
  72.         printf("%d\n",(!P)? small:big);
  73. //        getchar();
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement