#include <bits/stdc++.h>
using namespace std;
#define MAXN 1000000
int horizontal[2*MAXN+5], vertical[2*MAXN+5], n, r, w, t, res;
int main(){
scanf("%d", &n);
for(int i = 0; i<n;i++){
scanf("%d%d%d", &r, &w, &t);
if (r == 1){
vertical[MAXN + w - t]++;
} else {
horizontal[MAXN + w - t]++;
}
}
for(int i = 0; i <= 2*MAXN; i++){
res += min(horizontal[i], vertical[i]);
}
printf("%d\n", res);
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <bits/stdc++.h> using namespace std; #define MAXN 1000000 int horizontal[2*MAXN+5], vertical[2*MAXN+5], n, r, w, t, res; int main(){ scanf("%d", &n); for(int i = 0; i<n;i++){ scanf("%d%d%d", &r, &w, &t); if (r == 1){ vertical[MAXN + w - t]++; } else { horizontal[MAXN + w - t]++; } } for(int i = 0; i <= 2*MAXN; i++){ res += min(horizontal[i], vertical[i]); } printf("%d\n", res); } |
English