Advertisement
juanjo12x

UVA_11926_Multitasking

Aug 15th, 2014
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <cstring>
  5. #include <string>
  6. #include <bitset>
  7. #include <cctype>
  8. #include <stack>
  9. #include <queue>
  10. #include <list>
  11. #include <vector>
  12. #include <map>
  13. #include <set>
  14. #include <sstream>
  15. #include <stdlib.h>
  16. #include <cmath>
  17. #define FOR(i,A) for(typeof (A).begin() i = (A).begin() ; i != (A).end() ; i++)
  18. #define debug( x ) cout << #x << " = " << x << endl
  19. #define clr(v,x) memset( v, x , sizeof v )
  20. #define all(x) (x).begin() , (x).end()
  21. #define rall(x) (x).rbegin() , (x).rend()
  22. #define TAM 110
  23.  
  24. using namespace std;
  25.  
  26. typedef pair<int,int> ii ;
  27. typedef long long ll ;
  28. typedef long double ld ;
  29. typedef pair<int,ii> pii ;
  30. bitset<2000005> bs;
  31.  
  32.  
  33. int main() {
  34.     int one, rep, s, e, itv;
  35.     bool conflict;
  36.     while (scanf("%d %d", &one, &rep), one || rep) {
  37.         conflict = false;
  38.  
  39.         for (int i = 0; i < one; i++) {
  40.             scanf("%d %d", &s, &e);
  41.             if (!conflict) {
  42.                 for (int j = 2 * s + 1; j <= 2 * e; j++) {
  43.                     if (bs.test(j)) {
  44.                         conflict = true;
  45.                         break;
  46.                     }
  47.                     bs.set(j);
  48.                 }
  49.             }
  50.         }
  51.  
  52.         for (int i = 0; i < rep; i++) {
  53.             scanf("%d %d %d", &s, &e, &itv);
  54.             if (!conflict) {
  55.                 while (true) {
  56.                     for (int j = 2 * s + 1; j <= 2 * e; j++) {
  57.                         if (bs.test(j)) {
  58.                             conflict = true;
  59.                             break;
  60.                         }
  61.                         bs.set(j);
  62.                     }
  63.                     s += itv;
  64.                     e += itv;
  65.                     if (s > 1000000 && e > 1000000)
  66.                         break;
  67.                     else if (e > 1000000)
  68.                         e = 1000000;
  69.                 }
  70.             }
  71.         }
  72.  
  73.         if (conflict)
  74.             printf("CONFLICT\n");
  75.         else
  76.             printf("NO CONFLICT\n");
  77.  
  78.         for (int i = 0; i < 2000005; i++) {
  79.             bs.reset(i);
  80.         }
  81.     }
  82.  
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement