Untitled
unknown
plain_text
2 years ago
995 B
3
Indexable
#include<iostream>; using namespace std; int a[201][201],N; int dx[3]={-1,-1,-1}; int dy[3]={-1,0,1}; int vang,van,ans; bool dich; bool checkbien(int x,int y){ if(x<1 || x>N ||y<1 || y>5)return false; } void backtrack(int x,int y,int k){ if(k==N+1){ dich=true; if(vang>ans)ans=vang; return ; } for(int i=0;i<3;i++){ int xx=x+dx[i]; int yy=y+dy[i]; if(checkbien(xx,yy)){ if(a[xx][yy]==2 && van==1){ van=0; backtrack(xx,yy,k+1); van=1; } if(a[xx][yy]==0){ backtrack(xx,yy,k+1); } if(a[xx][yy]==1){ vang+=1; backtrack(xx,yy,k+1); vang-=1; } } } } int main(){ int T; //freopen("Text.txt","r",stdin); cin>>T; for(int tc=1;tc<=T;tc++){ cin>>N; for(int i=1;i<=N;i++){ for(int j=1;j<=5;j++){ cin>>a[i][j]; } } ans=0; vang=0; van=1; dich=false; backtrack(N+1,3,1); cout<<"#"<<tc<<" "; if(dich)cout<<ans<<endl; else cout<<-1<<endl; } return 0; }
Editor is loading...