Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <set>
- #include <bitset>
- #include <queue>
- #include <deque>
- #include <stack>
- #include <sstream>
- #include <iostream>
- #include <iomanip>
- #include <cstdio>
- #include <cstdlib>
- #include <cmath>
- #include <ctime>
- #include <cstring>
- #include <string>
- #include <cassert>
- #include <vector>
- #include <list>
- #include <map>
- #include <algorithm>
- #include <functional>
- #include <numeric>
- #include <utility>
- // DEFINE
- #define FOR(i,a,b) for (int i=(a),_b=(b); i<_b; i++)
- #define RFOR(i,b,a) for (int i=(b)-1,_a=(a); i>=_a; i--)
- #define RESET(a,b) memset((a),(b),sizeof(a))
- #define fi first
- #define se second
- #define foreach(i, c) for(typeof((c).begin()) i = (c).begin(); i != (c).end(); i++)
- //
- using namespace std;
- typedef vector <int> vi;
- typedef vector <vi> vvi;
- typedef pair <int, int> ii;
- typedef vector <ii> vii;
- typedef vector <string> vs;
- typedef long long int64; //NOTES:int64
- typedef unsigned long long uint64; //NOTES:uint64
- typedef unsigned uint;
- const double pi = acos(-1.0); //NOTES:pi
- const double eps = 1e-11; //NOTES:eps
- const int MAXI = 0x7fffffff;
- int in() {
- int x = 0, c;
- for (; (uint)((c = getchar()) - '0') >= 10; ) { if (c == '-') return -in(); if (!~c) throw ~0; }
- do { x = (x << 3) + (x << 1) + (c - '0'); } while ((uint)((c = getchar()) - '0') < 10);
- return x;
- }
- // CODE
- int a[1000][1000];
- pair<int,int> re;
- bool quad(int l, int r, int u, int d, int x)
- {
- if(l > r || u > d)
- return false;
- if(x > a[d][r] || x < a[u][l])
- return false;
- int row, col;
- row = (u+d)/2;
- col = (l+r)/2;
- if(a[row][col] == x)
- {
- re.fi = row;
- re.se = col;
- cout << "a[" << row << "][" << col << "] = " << a[row][col] << endl;
- return true;
- }
- else
- if(l == r && u == d)
- return false;
- if(x > a[row][col])
- return quad(col+1,r,u,row,x) || quad(l,col,row+1,d,x) || quad(col+1,r,row+1,d,x);
- else
- return quad(l,col,u,row,x) || quad(col+1,r,u,row,x) || quad(l,col,row+1,d,x);
- }
- int main(int argc, char *argv[])
- {
- int n, x;
- cin >> n;
- FOR(i,0,n)
- FOR(j,0,n)
- cin >> a[i][j];
- cin >> x;
- if(quad(0,n-1,0,n-1,x))
- cout << "YES";
- else
- cout << "NOT FOUND!";
- return 0;
- }
Add Comment
Please, Sign In to add comment