#include<bits/stdc++.h> using namespace std; int main () { int n, i, p=0, g=0, r, usun=0, odl, wys, j, maks=0, wypadlacz=0; cin>>n; int P[n][2], G[n][2]; for (i=0; i<n; i++) { cin>>r; if (r==1) { cin>>G[g][0]>> G[g][1]; if (G[g][0]> maks) maks=G[g][0]; g++; } else { cin>>P[p][0]>> P[p][1]; if (P[p][0]> maks) maks=P[p][0]; p++; } } int PW[maks+1], GW[maks+1]; for (i=0; i<maks+1; i++) { GW[i]=0; } for (i=0; i<maks+1; i++) { PW[i]=0; } for (i=0; i<g; i++) { wys=0; for (j=0; j<p; j++) { odl=0; if (G[i][1]<P[j][1]) { wys+=P[j][1]; } if (G[i][1]>P[j][1]) { odl+=G[i][1]; } while (odl!=G[i][0]) { wys++; odl++; } if (wys==P[j][0]) { GW[G[i][0]]++; PW[P[j][0]]++; wypadlacz++; } } } for (i=0; i<maks+1; i++) { if (GW[i]>1) { usun++; wypadlacz=-GW[i]; } } for (i=0; i<maks+1; i++) { if (PW[i]>1) { usun++; wypadlacz-=PW[i]; } } usun+=wypadlacz; cout<<usun; 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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | #include<bits/stdc++.h> using namespace std; int main () { int n, i, p=0, g=0, r, usun=0, odl, wys, j, maks=0, wypadlacz=0; cin>>n; int P[n][2], G[n][2]; for (i=0; i<n; i++) { cin>>r; if (r==1) { cin>>G[g][0]>> G[g][1]; if (G[g][0]> maks) maks=G[g][0]; g++; } else { cin>>P[p][0]>> P[p][1]; if (P[p][0]> maks) maks=P[p][0]; p++; } } int PW[maks+1], GW[maks+1]; for (i=0; i<maks+1; i++) { GW[i]=0; } for (i=0; i<maks+1; i++) { PW[i]=0; } for (i=0; i<g; i++) { wys=0; for (j=0; j<p; j++) { odl=0; if (G[i][1]<P[j][1]) { wys+=P[j][1]; } if (G[i][1]>P[j][1]) { odl+=G[i][1]; } while (odl!=G[i][0]) { wys++; odl++; } if (wys==P[j][0]) { GW[G[i][0]]++; PW[P[j][0]]++; wypadlacz++; } } } for (i=0; i<maks+1; i++) { if (GW[i]>1) { usun++; wypadlacz=-GW[i]; } } for (i=0; i<maks+1; i++) { if (PW[i]>1) { usun++; wypadlacz-=PW[i]; } } usun+=wypadlacz; cout<<usun; return 0; } |