fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int n,q;
  6. int l,r,mid;
  7. int cnt;
  8.  
  9. string lol;
  10. char tmp[10005];
  11. bool udah[10005];
  12.  
  13. struct data
  14. {
  15. string nama;
  16. int telp;
  17. };
  18.  
  19. data x[10005];
  20.  
  21. bool cmp(data a,data b)
  22. {
  23. if(a.nama<b.nama) return a.nama < b.nama;
  24. }
  25.  
  26. int main()
  27. {
  28. scanf("%d %d",&n,&q);
  29.  
  30. for(int i=1;i<=n;i++)
  31. {
  32. scanf("%s %d",&tmp,&x[i].telp);
  33. x[i].nama = tmp;
  34. }
  35. sort(x+1,x+n+1,cmp);
  36. for(int i=1;i<=q;i++)
  37. {
  38. scanf("%s",&tmp);
  39. lol = tmp;
  40. int l = 1;
  41. int r = n;
  42. while(l <= r)
  43. {
  44. int m = (l+r)/2;
  45. if (lol == x[m].nama)
  46. {
  47. printf("%d\n",x[m].telp);
  48. break;
  49. }
  50. if (lol > x[m].nama)
  51. {
  52. r = m-1;
  53. }
  54. else
  55. {
  56. l = m+1;
  57. }
  58. }
  59. }
  60.  
  61. return 0;
  62. }
Success #stdin #stdout 0s 3536KB
stdin
10 5
ACONG 8468431
BALAJI 1573547
GREGOR 1765743
JAPRA 3746843
JOKO 1357891
MALARANGENG 1375638
MANMOHAN 1357562
SITORUS 1378651
TERRY 8756345
YUDHOYONO 1781945
GREGOR
YUDHOYONO
ACONG
MANMOHAN
JAPRA
stdout
1765743
1781945
8468431
1357562
3746843