Submission #1033481

#TimeUsernameProblemLanguageResultExecution timeMemory
1033481vjudge1Furniture (JOI20_furniture)C++17
5 / 100
5071 ms2720 KiB
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize(2)
bitset<1010> reach[1010], open[1010];
int main(){
    cin.tie(0)->sync_with_stdio(0);
    int n,m,q;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            int x;
            cin>>x;
            open[j][i]=!x;
        }
    cin>>q;
    while(q--){
        int a,b;
        cin>>a>>b;
        open[b][a]=0;
        reach[0][1]=1;
        for(int i=1;i<=m;i++) {
            reach[i]=reach[i-1]&open[i];
            for(int j=2;j<=n;j++)
                if(open[i][j]&&reach[i][j-1])
                    reach[i][j]=1;
        }
        if(reach[m][n]){
            cout<<"1\n";
        } else cout<<"0\n",open[b][a]=1;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...