Ledger Nano X - The secure hardware wallet
SHARE
TWEET

Untitled

a guest Mar 28th, 2020 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. #define NMAX 1000005
  3.  
  4. using namespace std;
  5.  
  6. struct A
  7. {
  8.     int nr, val[15];
  9.     bool semn[15];
  10. };
  11.  
  12. bool crt ( A x, A y );
  13.  
  14. A v[NMAX];
  15. int t, n, i, j, nr, a[NMAX], S[NMAX], maxx;
  16. char c, s[20];
  17.  
  18. int main()
  19. {
  20.     ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  21.     cin >> t;
  22.     while ( t-- )
  23.     {
  24.         cin >> n;
  25.         for ( i = 1 ; i <= n ; i++ )
  26.         {
  27.             cin >> c >> nr;
  28.             cin.getline ( s, 20 );
  29.  
  30.             v[i].nr = nr;
  31.             if ( s[1] == 'T' && c == '<' ) v[i].semn[1] = 1, v[i].val[1]++;
  32.             else if ( s[1] == 'T' && c == '=' ) v[i].semn[3] = 1, v[i].val[3]++;
  33.             else if ( s[1] == 'T' && c == '>' ) v[i].semn[4] = 1, v[i].val[4]++;
  34.  
  35.             else if ( s[1] == 'F' && c == '<' ) v[i].semn[5] = 1, v[i].val[5]++;
  36.             else if ( s[1] == 'F' && c == '=' ) v[i].semn[6] = 1, v[i].val[6]++;
  37.             else if ( s[1] == 'F' && c == '>' ) v[i].semn[2] = 1, v[i].val[2]++;
  38.         }
  39.  
  40.         sort ( v + 1, v + n + 1, crt );
  41.  
  42.         for ( j = 1 ; j < n ; j++ )
  43.             {
  44.                 i = j + 1;
  45.                 while ( i <= n && v[j].nr == v[i].nr )
  46.                 {
  47.                     if ( v[i].semn[1] == 1 ) v[j].semn[1] = 1, v[j].val[1] += v[i].val[1];
  48.                     if ( v[i].semn[2] == 1 ) v[j].semn[2] = 1, v[j].val[2] += v[i].val[2];
  49.                     if ( v[i].semn[3] == 1 ) v[j].semn[3] = 1, v[j].val[3] += v[i].val[3];
  50.                     if ( v[i].semn[4] == 1 ) v[j].semn[4] = 1, v[j].val[4] += v[i].val[4];
  51.                     if ( v[i].semn[5] == 1 ) v[j].semn[5] = 1, v[j].val[5] += v[i].val[5];
  52.                     if ( v[i].semn[6] == 1 ) v[j].semn[6] = 1, v[j].val[6] += v[i].val[6];
  53.  
  54.                     i++;
  55.                 }
  56.  
  57.                 j = i - 1;
  58.             }
  59.  
  60.         for ( j = 1 ; j <= n ; j++ )
  61.         {
  62.             if ( v[j].semn[1] == 1 ) a[1] += v[j].val[1], a[j] -= v[j].val[1];
  63.             if ( v[j].semn[2] == 1 ) a[2] += v[j].val[2], a[j+1] -= v[j].val[2];
  64.             if ( v[j].semn[3] == 1 ) a[j] += v[j].val[3], a[j+1] -= v[j].val[3];
  65.             if ( v[j].semn[4] == 1 ) a[j+1] += v[j].val[4];
  66.             if ( v[j].semn[5] == 1 ) a[j] += v[j].val[5];
  67.             if ( v[j].semn[6] == 1 ) a[1] += v[j].val[6], a[j] -= v[j].val[6], a[j+1] += v[j].val[6];
  68.  
  69.             i = j + 1;
  70.             while ( i <= n && v[j].nr == v[i].nr ) i++;
  71.             j = i - 1;
  72.         }
  73.  
  74.         S[1] = a[1];
  75.         for ( i = 2 ; i <= n ; i++ ) S[i] = S[i-1] + a[i];
  76.  
  77.         maxx = 0;
  78.         for ( i = 1 ; i <= n ; i++ ) maxx = max ( maxx, S[i] );
  79.         cout << n - maxx << '\n';
  80.  
  81.         /*for ( i = 1 ; i <= n ; i++ ) cout << S[i] << ' ';
  82.         cout << '\n';*/
  83.  
  84.         for ( i = 1 ; i <= n ; i++ )
  85.         {
  86.             a[i] = S[i] = v[i].nr = 0;
  87.             for ( j = 1 ; j <= 6 ; j++ ) v[i].semn[j] = 0, v[i].val[j] = 0;
  88.         }
  89.  
  90.     }
  91.  
  92.     return 0;
  93. }
  94.  
  95. bool crt ( A x, A y )
  96. {
  97.     if ( x.nr < y.nr || ( x.nr == y.nr && x.semn < y.semn ) ) return 1;
  98.  
  99.     return 0;
  100. }
  101.  
  102. /*
  103.  
  104. 2
  105. 3
  106. = 5 True
  107. > 3 True
  108. = 1 False
  109. 2
  110. > 4 True
  111. = 4 True
  112.  
  113. */
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top