Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* e095 */
- /* AC (0.4s, 9.9MB) */
- #include <cstdio>
- #include <cmath>
- #include <algorithm>
- #define in(i, j) (i>=0&&i<n&&j>=0&&j<m)
- using namespace std;
- int n, m, t, taget, point1, point2, point3;
- bool isFind;
- int arr[1600][1600];
- void solve()
- {
- int li, lj, ri, rj;
- for(int i = 0; i < n; i++)
- for(int j = 0; j < m; j++)
- scanf("%d", &arr[i][j]);
- scanf("%d", &t);
- while(t-- && scanf("%d", &taget))
- {
- li = n - 1, lj = 0;
- ri = 0, rj = m - 1;
- isFind = false;
- while(li >= ri)
- {
- while(rj > 0 && arr[ri][rj] > taget) rj--;
- while(lj < m && arr[li][lj] < taget) lj++;
- if(arr[li][lj] == taget)
- {
- printf("yes [%d, %d]\n", li + 1, lj + 1);
- isFind = true;
- break;
- }
- if(arr[ri][rj] == taget)
- {
- printf("yes [%d, %d]\n", ri + 1, rj + 1);
- isFind = true;
- break;
- }
- li--, ri++;
- }
- if(!isFind) printf("no\n");
- }
- }
- int main()
- {
- scanf("%d %d",&n,&m);
- solve();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement