Submission #1171700

#TimeUsernameProblemLanguageResultExecution timeMemory
1171700DanerZeinFurniture (JOI20_furniture)C++20
0 / 100
5092 ms4436 KiB
#include<bits/stdc++.h> 
using namespace std; 
const int MOD=1e9+7; 
typedef long long ll; 
vector<vector<int>>aux; 
int dX[]={0,1}; 
int dY[]={1,0}; 
int n,m; 
bool f=false; 
bool dfs(int x,int y,vector<vector<int>>grid){ 
    grid[x][y]=1; 
    if(x==n-1 && y==m-1){ 
        f=true; 
    } 
    for(int i=0;i<2;i++){ 
        int nX=x+dX[i],nY=y+dY[i]; 
        if(nX>=0 && nY>=0 && nX<n && nY<m){ 
            if(grid[nX][nY]!=1){ 
                //cout<<nX<<" "<<nY<<"\n"; 
                dfs(nX,nY,grid); 
            } 
        } 
    } 
    return f; 
} 
void solve(){ 
    cin>>n>>m; 
    //cout<<"HOLA\n"; 
    aux.assign(n,vector<int>(m)); 
    for(int i=0;i<n;i++){ 
        for(int j=0;j<m;j++){ 
            cin>>aux[i][j]; 
        } 
    } 
    //cout<<"HOLA\n"; 
    int q; cin>>q; 
  
    if(aux[0][0]==1 || aux[n-1][m-1]==1 || dfs(0,0,aux)==0){ 
        //cout<<"UYY"; 
        while(q--){ 
            int x,y; cin>>x>>y; 
            cout<<"0\n"; 
        } 
        return; 
    } 
      
    while(q--){ 
        //cout<<"HOLA\n"; 
        int x,y; cin>>x>>y; 
        x--; 
        y--; 
        aux[x][y]=1; 
        f=false; 
        if(dfs(0,0,aux)==true){ 
            cout<<"1\n"; 
        } 
        else{ 
            cout<<"0\n"; 
            aux[x][y]=0; 
        } 
    } 
} 
int main(){ 
    ios::sync_with_stdio(0); 
    cin.tie(0); 
    cout.tie(0); 
    solve(); 
    return 0; 
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...