fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n, m, mt[1001][1001];
  6. cin >> n >> m;
  7. for (int i = 1; i <= n; ++i) {
  8. for (int j = 1; j <= m; ++j) {
  9. cin >> mt[i][j];
  10. }
  11. }
  12. int k, wanted_value;
  13. cin >> k;
  14. for (int query = 1; query <= k; query++) {
  15. cin >> wanted_value;
  16. int found = 0;
  17. for (int i = 1; i <= n && !found; ++i) {
  18. if (mt[i][1] <= wanted_value && wanted_value <= mt[i][m]) {
  19. int left_col = 1, right_col = m;
  20. while (left_col < right_col) {
  21. int mid_col = (left_col + right_col) / 2;
  22. if (mt[i][mid_col] < wanted_value) {
  23. left_col = mid_col + 1;
  24. } else {
  25. right_col = mid_col;
  26. }
  27. }
  28. if (mt[i][left_col] == wanted_value) {
  29. found = 1;
  30. }
  31. }
  32. }
  33. if (found) {
  34. cout << "DA" << '\n';
  35. } else {
  36. cout << "NU" << '\n';
  37. }
  38. }
  39. return 0;
  40. }
  41.  
Success #stdin #stdout 0.01s 5268KB
stdin
5 3 1 2 3 2 5 6 5 6 7 77 88 9 10 2 5 9 2 4 10 7 5 77 11 88 55
stdout
DA
NU
NU
DA
DA
NU
NU
NU
NU