#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using vi = vector<int>;
using vb = vector<bool>;
using vc = vector<char>;
using vvc = vector<vc>;
using vvi = vector<vi>;
using vvb = vector<vb>;
using vpii = vector<pii>;
using vpll = vector<pll>;
using vll = vector<ll>;
using vvll = vector<vll>;
using vull = vector<ull>;
#define f first
#define s second
#define pb emplace_back
#define rep(i, begin, end) for(auto i = (begin); i <= (end); ++i)
#define repr(i, begin, end) for(auto i = (begin); i >= (end); --i)
#define bend(X) X.begin(), X.end()
#ifdef LOCAL
#define nl << endl
#define deb(x) cout << #x << " = " << x << endl
#define say(x) cout << x << endl
void print() { cout << endl; }
#else
#define nl << '\n'
#define deb(x)
#define say(x)
void print() { cout << '\n'; }
#endif
constexpr int INF = 1e9+1e7;
constexpr ll INFl = INF;
constexpr ll INFll = 1e18+1e16;
template <typename T, typename... Args> void print(T x, Args... args) { cout << x << ' '; print(args...); }
template <typename T1, typename T2> ostream& operator<<(ostream& os, pair<T1,T2> x) { os << '(' << x.f << ' ' << x.s << ')'; return os; }
template <typename T1, typename T2> istream& operator>>(istream& is, pair<T1,T2>& x) { is >> x.f >> x.s; return is; }
template <typename T> istream& operator>>(istream& is, vector<T>& x) { for(T& i : x) is >> i; return is; }
template <typename T> ostream& operator<<(ostream& os, vector<T>& x) { for(const T& i : x) os << i << ' '; return os; }
template <typename T> ostream& operator<<(ostream& os, set<T>& x) { for(const T& i : x) os << i << ' '; return os; }
template <typename T1, typename T2> ostream& operator<<(ostream& os, map<T1, T2>& x) { for(const auto& i : x) os << "(" << i.first << " : " << i.second << ") "; return os; }
template <typename T1, typename T2> pair<T1,T2> operator+(const pair<T1,T2>& A, const pair<T1,T2>& B) { return {A.f+B.f, A.s+B.s}; }
template <typename T1, typename T2> pair<T1,T2> operator-(const pair<T1,T2>& A, const pair<T1,T2>& B) { return {A.f-B.f, A.s-B.s}; }
template <typename T1, typename T2> pair<T1,T2> operator-(const pair<T1,T2>& A) { return {-A.f, -A.s}; }
template <typename T1, typename T2> bool maxe(T1& A, const T2& B) { return A<B ? A=B,true : false; }
template <typename T1, typename T2> bool mine(T1& A, const T2& B) { return B<A ? A=B,true : false; }
// ----------------------------------------------------------------
// ----------------------------------------------------------------
int n;
map<int,pii> M;
ll solve() {
rep(i, 1, n) {
int a, w, t;
cin >> a >> w >> t;
if(a == 1)
M[w-t].f++;
else
M[w-t].s++;
}
int R = 0;
for(auto [_,x] : M)
R += min(x.f,x.s);
return R;
}
void in() {
cin >> n;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int noOfTests = 1;
//cin >> noOfTests;
while(noOfTests --> 0) {
in();
ll result = solve();
if (result == ll(-'t')) cout << "TAK\n";
else if(result == ll(-'n')) cout << "NIE\n";
else if(result == ll(-'y')) cout << "YES\n";
else if(result == ll(-'o')) cout << "NO\n";
else if(result == ll(-'e')) cout << "Popsute\n";
else if(result != -INF) cout << result << '\n';
}
return 0;
}
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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | #include <bits/stdc++.h> using namespace std; using ll = long long; using ull = unsigned long long; using ld = long double; using pii = pair<int,int>; using pll = pair<ll,ll>; using vi = vector<int>; using vb = vector<bool>; using vc = vector<char>; using vvc = vector<vc>; using vvi = vector<vi>; using vvb = vector<vb>; using vpii = vector<pii>; using vpll = vector<pll>; using vll = vector<ll>; using vvll = vector<vll>; using vull = vector<ull>; #define f first #define s second #define pb emplace_back #define rep(i, begin, end) for(auto i = (begin); i <= (end); ++i) #define repr(i, begin, end) for(auto i = (begin); i >= (end); --i) #define bend(X) X.begin(), X.end() #ifdef LOCAL #define nl << endl #define deb(x) cout << #x << " = " << x << endl #define say(x) cout << x << endl void print() { cout << endl; } #else #define nl << '\n' #define deb(x) #define say(x) void print() { cout << '\n'; } #endif constexpr int INF = 1e9+1e7; constexpr ll INFl = INF; constexpr ll INFll = 1e18+1e16; template <typename T, typename... Args> void print(T x, Args... args) { cout << x << ' '; print(args...); } template <typename T1, typename T2> ostream& operator<<(ostream& os, pair<T1,T2> x) { os << '(' << x.f << ' ' << x.s << ')'; return os; } template <typename T1, typename T2> istream& operator>>(istream& is, pair<T1,T2>& x) { is >> x.f >> x.s; return is; } template <typename T> istream& operator>>(istream& is, vector<T>& x) { for(T& i : x) is >> i; return is; } template <typename T> ostream& operator<<(ostream& os, vector<T>& x) { for(const T& i : x) os << i << ' '; return os; } template <typename T> ostream& operator<<(ostream& os, set<T>& x) { for(const T& i : x) os << i << ' '; return os; } template <typename T1, typename T2> ostream& operator<<(ostream& os, map<T1, T2>& x) { for(const auto& i : x) os << "(" << i.first << " : " << i.second << ") "; return os; } template <typename T1, typename T2> pair<T1,T2> operator+(const pair<T1,T2>& A, const pair<T1,T2>& B) { return {A.f+B.f, A.s+B.s}; } template <typename T1, typename T2> pair<T1,T2> operator-(const pair<T1,T2>& A, const pair<T1,T2>& B) { return {A.f-B.f, A.s-B.s}; } template <typename T1, typename T2> pair<T1,T2> operator-(const pair<T1,T2>& A) { return {-A.f, -A.s}; } template <typename T1, typename T2> bool maxe(T1& A, const T2& B) { return A<B ? A=B,true : false; } template <typename T1, typename T2> bool mine(T1& A, const T2& B) { return B<A ? A=B,true : false; } // ---------------------------------------------------------------- // ---------------------------------------------------------------- int n; map<int,pii> M; ll solve() { rep(i, 1, n) { int a, w, t; cin >> a >> w >> t; if(a == 1) M[w-t].f++; else M[w-t].s++; } int R = 0; for(auto [_,x] : M) R += min(x.f,x.s); return R; } void in() { cin >> n; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int noOfTests = 1; //cin >> noOfTests; while(noOfTests --> 0) { in(); ll result = solve(); if (result == ll(-'t')) cout << "TAK\n"; else if(result == ll(-'n')) cout << "NIE\n"; else if(result == ll(-'y')) cout << "YES\n"; else if(result == ll(-'o')) cout << "NO\n"; else if(result == ll(-'e')) cout << "Popsute\n"; else if(result != -INF) cout << result << '\n'; } return 0; } |
English