#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
long long a1[500012];
long long a2[500012];
int nA1;
int nA2;
int main(){
int n,ri;
long long wi=0,ti=0,xi=0,yi=0,l1=0,l2=0;
cin >>n;
for(int i=0;i<n;i++) {
cin >> ri;
cin >> wi;
cin >> ti;
if(ri==1){
xi=wi;
yi=-ti;
a1[l1] = xi+yi;
l1++;
}
if(ri==2){
xi=-ti;
yi=wi;
a2[l2] = xi+yi;
l2++;
}
}
sort(a1, a1+l1);
sort(a2, a2+l2);
// cout << "a1"<<endl;
// for (int i=0;i<l1;i++) {
// cout << a1[i] <<endl;
// }
// cout << "a2"<<endl;
// for (int i=0;i<l2;i++) {
// cout << a2[i] <<endl;
// }
int j=0,i=0,wynik=0;
//cout <<endl;
while(true) {
if(i >= l1) break;
if(j>=l2) break;
//cout << "i= "<<i <<" a1i=" <<a1[i] << " j= "<<j<<" a2j=" <<a2[j]<<endl;
if (a1[i] < a2[j]) {
i++;
if(i>=l1) break;
} else if(a1[i]> a2[j]) {
j++;
if(j>=l2) break;
} else if(a1[i]==a2[j]){
i++;
j++;
wynik++;
if(i >= l1) break;
if(j>=l2) break;
}
}
cout << wynik <<endl;
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 | #include <iostream> #include <cmath> #include <algorithm> using namespace std; long long a1[500012]; long long a2[500012]; int nA1; int nA2; int main(){ int n,ri; long long wi=0,ti=0,xi=0,yi=0,l1=0,l2=0; cin >>n; for(int i=0;i<n;i++) { cin >> ri; cin >> wi; cin >> ti; if(ri==1){ xi=wi; yi=-ti; a1[l1] = xi+yi; l1++; } if(ri==2){ xi=-ti; yi=wi; a2[l2] = xi+yi; l2++; } } sort(a1, a1+l1); sort(a2, a2+l2); // cout << "a1"<<endl; // for (int i=0;i<l1;i++) { // cout << a1[i] <<endl; // } // cout << "a2"<<endl; // for (int i=0;i<l2;i++) { // cout << a2[i] <<endl; // } int j=0,i=0,wynik=0; //cout <<endl; while(true) { if(i >= l1) break; if(j>=l2) break; //cout << "i= "<<i <<" a1i=" <<a1[i] << " j= "<<j<<" a2j=" <<a2[j]<<endl; if (a1[i] < a2[j]) { i++; if(i>=l1) break; } else if(a1[i]> a2[j]) { j++; if(j>=l2) break; } else if(a1[i]==a2[j]){ i++; j++; wynik++; if(i >= l1) break; if(j>=l2) break; } } cout << wynik <<endl; return 0; } |
English