#include <stdio.h> #include <stdlib.h> int xa[50000],xb[50000],y[50000],l[50000]; int c(const void *a, const void *b) { return xa[*(int*)a]-xa[*(int*)b]; } int main() { int t,n,w,i,j,x1,x2,y1,y2,p,q; scanf("%d",&t); for (;t--;) { scanf("%d%d",&n,&w); for (i=0;i<n;i++) { scanf("%d%d%d%d",&x1,&y1,&x2,&y2); xa[i]=x1<x2?x1:x2; y[i]=abs(y2-y1); } for (i=0;i<n;i++) { scanf("%d%d%d%d",&x1,&y1,&x2,&y2); xb[i]=x1<x2?x1:x2; l[i]=i; } qsort(l,n,sizeof(*l),c); for (i=1;i<n;i++) { p=xb[l[i]]; q=y[l[i]]; for (j=i;j>0&&xb[l[j-1]]>p;j--) { l[j]=l[j-1]; if (q+y[l[j]]>w) { puts("NIE"); goto z; } } } puts("TAK"); z:; } 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 | #include <stdio.h> #include <stdlib.h> int xa[50000],xb[50000],y[50000],l[50000]; int c(const void *a, const void *b) { return xa[*(int*)a]-xa[*(int*)b]; } int main() { int t,n,w,i,j,x1,x2,y1,y2,p,q; scanf("%d",&t); for (;t--;) { scanf("%d%d",&n,&w); for (i=0;i<n;i++) { scanf("%d%d%d%d",&x1,&y1,&x2,&y2); xa[i]=x1<x2?x1:x2; y[i]=abs(y2-y1); } for (i=0;i<n;i++) { scanf("%d%d%d%d",&x1,&y1,&x2,&y2); xb[i]=x1<x2?x1:x2; l[i]=i; } qsort(l,n,sizeof(*l),c); for (i=1;i<n;i++) { p=xb[l[i]]; q=y[l[i]]; for (j=i;j>0&&xb[l[j-1]]>p;j--) { l[j]=l[j-1]; if (q+y[l[j]]>w) { puts("NIE"); goto z; } } } puts("TAK"); z:; } return 0; } |