2013年11月7日 星期四
[ZJ] a820: 101學年度桃竹苗區資訊學科能力競賽 3.小精靈吃數字
#include<stdio.h>
int s[15][15],n,m,ans=0;
void dfs(int x,int y,int t,int add){
int X,Y;
if(add==4) return;
ans+=s[x][y];
if(t==1){
x++,y--;
if(x>n-1 && y<0) x=n-1,y=0,t=3,add++;
else if(x>n-1) x=n-1,t=4,add++;
else if(y<0) y=0,t=2,add++;
dfs(x,y,t,add);
}
else if(t==2){
x++,y++;
if(x>n-1 && y>m-1) x=n-1,y=m-1,t=4,add++;
else if(x>n-1) x=n-1,t=3,add++;
else if(y>m-1) y=m-1,t=1,add++;
dfs(x,y,t,add);
}
else if(t==3){
x--,y++;
if(x<0 && y>m-1) x=0,y=m-1,t=1,add++;
else if(x<0) x=0,t=2,add++;
else if(y>m-1) y=m-1,t=4,add++;
dfs(x,y,t,add);
}
else if(t==4){
x--,y--;
if(x<0 && y<0) x=0,y=0,t=2,add++;
else if(x<0) x=0,t=1,add++;
else if(y<0) y=0,t=3,add++;
dfs(x,y,t,add);
}
}
int main(){
int i,j,x,y,t;
scanf("%d%d",&n,&m);
x=n,n=m,m=x;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&s[i][j]);
scanf("%d%d%d",&x,&y,&t);
dfs(y-1,x-1,t,0);
printf("%d\n",ans);
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言