Advertisement
nontawat1996

1013.ขีปนาวุธเกาหลีเหนือ ภาค ๒ (connecting) int

Oct 12th, 2012
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int dataa[200005][2]= {0},datab[200005][2]= {0};
  5. long long want,wantdis;
  6. int na,nb;
  7. int cmp(const void *a,const void *b)
  8. {
  9.     int *aa=(int *)a;
  10.     int *bb=(int *)b;
  11.     if(aa[0]>bb[0]) return 1;
  12.     else return -1;
  13. }
  14. int main()
  15. {
  16.     int i,low,high,mid,j;
  17.     scanf("%d%d%lld",&na,&nb,&want);
  18.     for(i=0; i<na; i++)
  19.     {
  20.         scanf("%d",&dataa[i][0]);
  21.         dataa[i][1]=i+1;
  22.     }
  23.     for(i=0; i<nb; i++)
  24.     {
  25.         scanf("%d",&datab[i][0]);
  26.         datab[i][1]=i+1;
  27.     }
  28.  
  29.     qsort(dataa,na,sizeof(dataa[0]),cmp);
  30.  
  31.     //for(i=0;i<na;i++) printf("%d ",dataa[i]);
  32.     for(i=0; i<na; i++)
  33.     {
  34.         wantdis=want-dataa[i][0];
  35.  
  36.         if(wantdis>=1)
  37.         {
  38.             //printf("want : %d\n",wantdis);
  39.             low=0;
  40.             high=nb-1;
  41.             while(low<=high)
  42.             {
  43.                 mid=(high+low)/2;
  44.                 if(wantdis<datab[mid][0]) high=mid-1;
  45.                 else if(wantdis>datab[mid][0]) low=mid+1;
  46.                 else break;
  47.             }
  48.             if(wantdis==datab[mid][0])
  49.             {
  50.                 printf("%d %d",dataa[i][1],datab[mid][1]);
  51.  
  52.  
  53.                 /*int x,y;
  54.                 //printf("%lld %lld",dataa[i],datab[mid]);
  55.                 for(j=0;j<200000;j++)
  56.                 {
  57.                     if(dataa[i]==a[j]) x=j+1;
  58.                     if(datab[mid]==b[j]) y=j+1;
  59.                 }
  60.                 printf("%d %d",x,y);*/
  61.  
  62.                 return 0;
  63.             }
  64.         }
  65.  
  66.     }
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement