Advertisement
erfanul007

UVa 11034

Sep 14th, 2021
1,050
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.49 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long int
  5.  
  6.  
  7. #ifdef ERFANUL007
  8.     #define debug(...) __f(#__VA_ARGS__, __VA_ARGS__)
  9.     template < typename Arg1 >
  10.     void __f(const char* name, Arg1&& arg1){
  11.         cout << name << " = " << arg1 << std::endl;
  12.     }
  13.     template < typename Arg1, typename... Args>
  14.     void __f(const char* names, Arg1&& arg1, Args&&... args){
  15.         const char* comma = strchr(names, ',');
  16.         cout.write(names, comma - names) << " = " << arg1 <<" | ";
  17.         __f(comma+1, args...);
  18.     }
  19. #else
  20.     #define debug(...)
  21. #endif
  22.  
  23. int main(){
  24.     #ifdef ERFANUL007
  25.         clock_t tStart = clock();
  26.         freopen("input.txt", "r", stdin);
  27.         freopen("output.txt", "w", stdout);
  28.     #endif
  29.  
  30.     int t;
  31.     cin >> t;
  32.     //debug(t);
  33.  
  34.     while(t--){
  35.         ll l;
  36.         int m;
  37.         cin >> l >> m;
  38.         //debug(l, m);
  39.         l *= 100;
  40.         vector< int > left, right;
  41.  
  42.         for(int i=0; i < m; i++){
  43.             ll x;
  44.             string s;
  45.             cin >> x >> s;
  46.             //debug(x, s);
  47.             if(s == "left") left.push_back(x);
  48.             else right.push_back(x);
  49.         }
  50.         int cnt = 0, i=0, j=0;
  51.  
  52.         while(i < left.size() || j<right.size()){
  53.             if(cnt % 2 == 0){
  54.                 ll sum = 0;
  55.                 while(i < left.size()){
  56.                     if(sum + left[i] > l) break;
  57.                     sum += left[i++];
  58.                 }
  59.             }
  60.             else{
  61.                 ll sum = 0;
  62.                 while(j < right.size()){
  63.                     if(sum + right[j] > l) break;
  64.                     sum += right[j++];
  65.                 }
  66.             }
  67.             cnt++;
  68.             //debug(cnt);
  69.         }
  70.         cout << cnt << '\n';
  71.     }
  72.  
  73.     #ifdef ERFANUL007
  74.         fprintf(stderr, ">>> Runtime : %.9f\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);
  75.     #endif
  76.  
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement