#include <iostream> #include <algorithm> using namespace std; const int N=500005; int j[N],d[N]; int main() { int n,l,w,t,licz_j=0,licz_d=0,wyn=0; cin>>n; for(int i=0;i<n;i++) { cin>>l>>w>>t; w-=t; if(l==1) j[licz_j++]=w; else d[licz_d++]=w; } j[licz_j++]=d[licz_d++]=N*4; sort(j,j+licz_j); sort(d,d+licz_d); int i=0,k=0,pk,pi; while(i<licz_j-1 || k<licz_d-1) { while(j[i]<d[k]) i++; while(j[i]>d[k]) k++; if(j[i]==d[k] && i<licz_j-1 && k<licz_d-1) { pi=i; pk=k; while(j[pi]==d[k]) pi++; while(j[i]==d[pk]) pk++; wyn+=min(pi-i,pk-k); i=pi; k=pk; } } cout<<wyn<<"\n"; }
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 | #include <iostream> #include <algorithm> using namespace std; const int N=500005; int j[N],d[N]; int main() { int n,l,w,t,licz_j=0,licz_d=0,wyn=0; cin>>n; for(int i=0;i<n;i++) { cin>>l>>w>>t; w-=t; if(l==1) j[licz_j++]=w; else d[licz_d++]=w; } j[licz_j++]=d[licz_d++]=N*4; sort(j,j+licz_j); sort(d,d+licz_d); int i=0,k=0,pk,pi; while(i<licz_j-1 || k<licz_d-1) { while(j[i]<d[k]) i++; while(j[i]>d[k]) k++; if(j[i]==d[k] && i<licz_j-1 && k<licz_d-1) { pi=i; pk=k; while(j[pi]==d[k]) pi++; while(j[i]==d[pk]) pk++; wyn+=min(pi-i,pk-k); i=pi; k=pk; } } cout<<wyn<<"\n"; } |