Advertisement
Guest User

USACO January, B

a guest
Jan 14th, 2012
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. Cow Run (C++)
  2.  
  3. Madi Khamitbekov (kh.madi1)
  4. Submitted: Mon, Jan 09, 2012 23:00:28 EST
  5.  
  6. /*
  7. ** Khamitbekov Madi
  8. ** Kazakhstan, Almaty
  9. ** Kazakh-Turkish High School, 2011
  10. */
  11. #include <algorithm>
  12. #include <iostream>
  13. #include <string.h>
  14. #include <utility>
  15. #include <fstream>
  16. #include <cstdlib>
  17. #include <cstring>
  18. #include <string>
  19. #include <vector>
  20. #include <cstdio>  
  21. #include <cmath>
  22. #include <queue>
  23. #include <ctime>
  24. #include <list>
  25. #include <set>
  26. #include <map>
  27.  
  28. using namespace std;
  29.  
  30. typedef long long ll;
  31. typedef long double ld;
  32. typedef unsigned long long ull;
  33. typedef vector < vector < int > >  vvi;
  34. typedef vector < pair < int, int > >  vpi;
  35. typedef queue  < pair < int, int > > qpi;
  36.  
  37. #define ones(x) (__builtin_popcount(x))
  38. #define abs(x) ((x) > 0 ? (x) : -(x))
  39. #define all(v) (v).begin(), (v).end()
  40. #define sq(x) ((x)*(x))
  41. #define len length()
  42. #define pb push_back
  43. #define mp make_pair
  44. #define inf 7777777
  45. #define eps (1e-7)
  46. #define sz size()
  47. #define s second
  48. #define f first
  49.  
  50. int n, m, k, r = 0, pl, d = 0, d1;
  51. string b;
  52. int h[100][10];
  53.  
  54. int main ()
  55. {
  56.     freopen ("cowrun.in", "r", stdin);
  57.     freopen ("cowrun.out", "w", stdout);
  58.  
  59.     cin >> n >> m >> k;
  60.     cin >> b;
  61.     for (int i = 0; i < n; i++)
  62.         for (int j = 0; j < 8; j++)
  63.             cin >> h[i][j];
  64.     bool bad = 0;
  65.     int d1 = 0;
  66.     for (int mask = 0; mask < (1<<n); mask++) {
  67.         bool ok = 1;
  68.         for (int be = 0; be < (1<<n); be++) {
  69.                 bad = 0;
  70.             r = 0;
  71.             for (int i = 0; i < n; i++) {
  72.                 pl = 4;
  73.                 if (mask&(1<<i)) pl = 0;
  74.                 if (be&(1<<i))  d = ((r*1LL*h[i][pl])%m + h[i][pl+1])%m;
  75.                 else        d = ((r*1LL*h[i][pl+2])%m + h[i][pl+3])%m;
  76.                 if (d > k) {bad = 1;break;}
  77.                 r = (r + d)%m;
  78.             }
  79.             ok &= (!bad && !r);
  80.             if (!ok)break;
  81.         }
  82.         if (ok) {
  83.             for (int i = 0; i < n; i++)
  84.                 if (mask&(1<<i)) cout << "T";
  85.                 else         cout << "B";
  86.             return 0;
  87.         }
  88.     }
  89.  
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement