제출 #516524

#제출 시각아이디문제언어결과실행 시간메모리
516524DJ035Furniture (JOI20_furniture)C++17
0 / 100
866 ms524292 KiB
#include <bits/stdc++.h> #define MEM 1001 #define sanic ios_base::sync_with_stdio(0) #define x first #define y second #define pf push_front #define pb push_back #define all(v) v.begin(), v.end() #define sz size() using namespace std; typedef long long ll; typedef pair<ll, ll> pi; const ll MOD = 1e9+7; const ll INF = 2e14+7; ll mul(ll a, ll b){ return ((a*b)%MOD+MOD)%MOD; } ll add(ll a, ll b){ return ((a+b)%MOD+MOD)%MOD; } ll t,n,m,q,k; ll a[MEM][MEM]; string s; ll dx[2] = {1,0}; ll dy[2] = {0,1}; ll bfs(){ queue<pi> q; pi fin={n-1, m-1}; q.push({0,0}); while(!q.empty()){ pi cur = q.front(); q.pop(); if(cur==fin) return 1; //cout << "c " << cur.x << ' ' << cur.y << '\n'; for(int i=0; i<2; i++){ ll nx = cur.x+dx[i], ny = cur.y+dy[i]; //cout <<'\n' << nx << ' ' << ny << ' '; if(nx>=n || ny>=m) continue; //cout << "p "; if(a[nx][ny]) continue; //cout << "p "; q.push({nx,ny}); } } return 0; } signed main(){ sanic; cin.tie(0); cout.tie(0); cin >> n >> m; for(int i=0; i<n; i++) for(int j=0; j<m; j++) cin >> a[i][j]; cin >> t; while(t--){ ll q1,q2; cin >> q1 >> q2; a[q1-1][q2-1] = 1; ll f=bfs(); if(f) cout << 1; else { cout << 0; a[q1-1][q2-1] = 0; } cout << '\n'; } } /* 6 2 3 4 3 1 3 3 5 6 2 110011 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...