#include<cstdio> #include<vector> #include<algorithm> using namespace std; vector<pair<int, int>> V; vector<pair<int, int>> W; int main() { int n; scanf("%i", &n); for (int i = 0; i < n; ++i) { int r, w, t; scanf("%i%i%i", &r, &w, &t); t -= w; V.push_back(make_pair(t, r)); } sort(V.begin(), V.end()); int prevT = V[0].first; int prevR = V[0].second; int cnt = 0; for (int i = 0; i < V.size(); ++i) { if (V[i].first == prevT and V[i].second == prevR) { cnt++; } else { W.push_back(make_pair(prevT, cnt)); cnt = 1; prevT = V[i].first; prevR = V[i].second; } } W.push_back(make_pair(prevT, cnt)); int res = 0; for (int i = 1; i < W.size(); ++i) { if (W[i-1].first == W[i].first) { res += min(W[i-1].second, W[i].second); } } printf("%i\n", res); 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 | #include<cstdio> #include<vector> #include<algorithm> using namespace std; vector<pair<int, int>> V; vector<pair<int, int>> W; int main() { int n; scanf("%i", &n); for (int i = 0; i < n; ++i) { int r, w, t; scanf("%i%i%i", &r, &w, &t); t -= w; V.push_back(make_pair(t, r)); } sort(V.begin(), V.end()); int prevT = V[0].first; int prevR = V[0].second; int cnt = 0; for (int i = 0; i < V.size(); ++i) { if (V[i].first == prevT and V[i].second == prevR) { cnt++; } else { W.push_back(make_pair(prevT, cnt)); cnt = 1; prevT = V[i].first; prevR = V[i].second; } } W.push_back(make_pair(prevT, cnt)); int res = 0; for (int i = 1; i < W.size(); ++i) { if (W[i-1].first == W[i].first) { res += min(W[i-1].second, W[i].second); } } printf("%i\n", res); return 0; } |