fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const int MAX_SIZE = 1000;
  5.  
  6. int main() {
  7. int n, m, q, mt[MAX_SIZE + 1][MAX_SIZE + 1], v[MAX_SIZE + 1];
  8. cin >> n >> m;
  9. for (int i = 1; i <= n; ++i) {
  10. for (int j = 1; j <= m; ++j) {
  11. cin >> mt[i][j] ;
  12. }
  13. }
  14. cin >> q;
  15. while (q) {
  16. for (int j = 1; j <= m; ++j) {
  17. cin >> v[j];
  18. // cout << v[j] <<" ";
  19. }
  20. int stanga = 1, dreapta = n, midle;
  21. while (stanga < dreapta) {
  22. midle = (stanga + dreapta) / 2;
  23. if (mt[midle][1] < v[1]) {
  24. stanga = midle + 1;
  25. } else {
  26. dreapta = midle;
  27. }
  28. }
  29. int flag = 1;
  30. //cout << mt[stanga][1] <<" " <<v[1] <<"\n";
  31. if (mt[stanga][1] == v[1] || mt[stanga][1] != v[1] ) {
  32. for(int index = 1; index <= m; ++index) {
  33. // cout << mt[stanga][index] <<" "<< v[index]<<" \n";
  34. if (mt[stanga][index] != v[index]) {
  35. flag = 0;
  36. }
  37. }
  38. }
  39. if (flag == 1) {
  40. cout << "DA\n";
  41. } else {
  42. cout << "NU\n";
  43. }
  44. --q;
  45. }
  46. return 0;
  47. }
Success #stdin #stdout 0.01s 5304KB
stdin
6 4 
1 5 8 10
1 6 9 7 
2 4 6 8 
2 5 5 7 
3 2 6 8 
3 3 3 3 
3
1 5 8 10
2 4 6 8 
3 2 6 8 
stdout
DA
DA
DA