fork download
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int N;
  5. int Q;
  6. cin>>N>>Q;
  7. string listName[N];
  8. string listPhone[N];
  9. string listFind[Q];
  10.  
  11. // input list name & phone
  12. for (int i=0; i<N; i++) {
  13. cin>>listName[i];
  14. cin>>listPhone[i];
  15. }
  16.  
  17. // input list user find
  18. for (int i=0; i<Q; i++) {
  19. cin>>listFind[i];
  20. }
  21.  
  22. string findNumber[Q];
  23.  
  24. // proses binary search
  25. for (int i=0; i<Q; i++) {
  26. int left = 0;
  27. int right = N;
  28. while (left <= right) {
  29. int mid = (left + right) / 2;
  30. if (listName[mid] == listFind[i]) {
  31. findNumber[i] = listPhone[mid];
  32. break;
  33. } else if (listName[mid] < listFind[i]) left = mid+1;
  34. else right = mid - 1;
  35. }
  36. if (left > right) findNumber[i] = "NIHIL";
  37. }
  38.  
  39. for (int i=0; i<Q; i++) {
  40. cout<<findNumber[i]<<endl;
  41. }
  42. }
Success #stdin #stdout 0.01s 5512KB
stdin
7 2
agung 572381
ani 111111
budi 222222
dengklek 696969
ganesh 987123
gareng 429088
hadi 682385
budi
nyancoder
stdout
222222
NIHIL