#include<iostream> #include <algorithm> #include <stdlib.h> using namespace std; #define M 50002 struct Auto { int nr; int poz; int wys;}; bool Por(const Auto& a1, const Auto& a2) { return a1.poz<a2.poz; }; int main( ) { ios_base::sync_with_stdio(0); int t, n, w, ans, aaa, x1, x2, y1, y2, W; Auto A[M], B[M]; cin>>t; for(int i=1; i<=t; ++i) { ans=1; aaa=0; cin>>n>>W; for(int j=1; j<=n; ++j) { cin>>x1>>y1>>x2>>y2; A[j].nr=j; A[j].poz=min(x1,x2); A[j].wys=abs(y1-y2); if(A[j].wys>W/2) aaa=1; } for(int j=1; j<=n; ++j) { cin>>x1>>y1>>x2>>y2; B[j].nr=j; B[j].poz=min(x1,x2); B[j].wys=abs(y1-y2); } if(aaa==0) cout<<"TAK\n"; else { sort(A+1,A+n+1, Por); sort(B+1,B+n+1, Por); for(int j=1; j<=n; ++j) { for(int k=j; k<=n; ++k) { if(A[j].nr==B[k].nr) { for(int s=k; s>j; --s) { swap(B[s].nr,B[s-1].nr); swap(B[s].poz,B[s-1].poz); swap(B[s].wys,B[s-1].wys); } break; } else if(A[j].wys+B[k].wys>W) { ans=0; k=n+1; j=n+1; } } } if(ans==1) cout<<"TAK\n"; else cout<<"NIE\n"; } } 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 | #include<iostream> #include <algorithm> #include <stdlib.h> using namespace std; #define M 50002 struct Auto { int nr; int poz; int wys;}; bool Por(const Auto& a1, const Auto& a2) { return a1.poz<a2.poz; }; int main( ) { ios_base::sync_with_stdio(0); int t, n, w, ans, aaa, x1, x2, y1, y2, W; Auto A[M], B[M]; cin>>t; for(int i=1; i<=t; ++i) { ans=1; aaa=0; cin>>n>>W; for(int j=1; j<=n; ++j) { cin>>x1>>y1>>x2>>y2; A[j].nr=j; A[j].poz=min(x1,x2); A[j].wys=abs(y1-y2); if(A[j].wys>W/2) aaa=1; } for(int j=1; j<=n; ++j) { cin>>x1>>y1>>x2>>y2; B[j].nr=j; B[j].poz=min(x1,x2); B[j].wys=abs(y1-y2); } if(aaa==0) cout<<"TAK\n"; else { sort(A+1,A+n+1, Por); sort(B+1,B+n+1, Por); for(int j=1; j<=n; ++j) { for(int k=j; k<=n; ++k) { if(A[j].nr==B[k].nr) { for(int s=k; s>j; --s) { swap(B[s].nr,B[s-1].nr); swap(B[s].poz,B[s-1].poz); swap(B[s].wys,B[s-1].wys); } break; } else if(A[j].wys+B[k].wys>W) { ans=0; k=n+1; j=n+1; } } } if(ans==1) cout<<"TAK\n"; else cout<<"NIE\n"; } } return 0; } |