#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
vector <int> a, b;
vector <pair<int,int>> A,B;
int main() {
ios_base::sync_with_stdio(0); cin.tie();
cin >> n;
for(int i = 0; i < n; i++){
int r, w, t;
cin >> r >> w >> t;
int x = w - t;
if(r == 1) a.push_back(x);
else b.push_back(x);
}
if(a.empty() || b.empty()) {
cout << 0;
return 0;
}
sort(a.begin(), a.end());
sort(b.begin(), b.end());
int cur = a[0], il = 0;
for(int i = 0; i < a.size(); i++){
if(cur == a[i]) il++;
else{
A.push_back({cur, il});
cur = a[i];
il = 1;
}
}
A.push_back({cur, il});
cur = b[0]; il = 0;
for(int i = 0; i < b.size(); i++){
if(cur == b[i]) il++;
else{
B.push_back({cur, il});
cur = b[i];
il = 1;
}
}
B.push_back({cur, il});
int i = 0, j = 0;
int ans = 0;
while(i < A.size() && j < B.size()){
if(A[i].first > B[j].first) j++;
else if(B[j].first > A[i].first) i++;
else {
ans += min(A[i].second, B[j].second);
i++;
j++;
}
}
cout << ans;
}
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 | #include <iostream> #include <vector> #include <algorithm> using namespace std; int n; vector <int> a, b; vector <pair<int,int>> A,B; int main() { ios_base::sync_with_stdio(0); cin.tie(); cin >> n; for(int i = 0; i < n; i++){ int r, w, t; cin >> r >> w >> t; int x = w - t; if(r == 1) a.push_back(x); else b.push_back(x); } if(a.empty() || b.empty()) { cout << 0; return 0; } sort(a.begin(), a.end()); sort(b.begin(), b.end()); int cur = a[0], il = 0; for(int i = 0; i < a.size(); i++){ if(cur == a[i]) il++; else{ A.push_back({cur, il}); cur = a[i]; il = 1; } } A.push_back({cur, il}); cur = b[0]; il = 0; for(int i = 0; i < b.size(); i++){ if(cur == b[i]) il++; else{ B.push_back({cur, il}); cur = b[i]; il = 1; } } B.push_back({cur, il}); int i = 0, j = 0; int ans = 0; while(i < A.size() && j < B.size()){ if(A[i].first > B[j].first) j++; else if(B[j].first > A[i].first) i++; else { ans += min(A[i].second, B[j].second); i++; j++; } } cout << ans; } |
English