1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
#include <bits/stdc++.h>
#define log printf #define EPS 1e-8 #define INF 0x3f3f3f3f #define FOR(i, l, r) for (int(i) = (l); (i) <= (r); ++(i)) #define IOS \ ios::sync_with_stdio(false); \ cin.tie(nullptr); \ cout.tie(nullptr);
using namespace std;
typedef __int128 i128; typedef long long ll; typedef pair<int, int> PII;
const int N = 2e5 + 10; int n, t, ans = INF; vector<int> pls, lhs, rhs; char op;
template <typename T>
inline T read() { T sum = 0, fl = 1; char ch = getchar(); for (; !isdigit(ch); ch = getchar()) if (ch == '-') fl = -1; for (; isdigit(ch); ch = getchar()) sum = sum * 10 + ch - '0'; return sum * fl; }
template <typename T>
inline void write(T x) { if (x < 0) { putchar('-'), write<T>(-x); return; } static T sta[35]; int top = 0; do { sta[top++] = x % 10, x /= 10; } while (x); while (top) putchar(sta[--top] + 48); }
int main() { IOS cin >> n; FOR(i, 1, n) { cin >> op >> t; pls.push_back(t); if (op == 'L') lhs.push_back(t); else rhs.push_back(t); } sort(pls.begin(), pls.end()); sort(lhs.begin(), lhs.end()); sort(rhs.begin(), rhs.end()); for (auto i : pls) { int tmpg = rhs.size() - (upper_bound(rhs.begin(), rhs.end(), i) - rhs.begin()), tmpl = lower_bound(lhs.begin(), lhs.end(), i) - lhs.begin(); cerr << i << ' ' << tmpg << ' ' << tmpl << endl; ans = min(ans, tmpg + tmpl); } write<int>(ans); return 0; }
|