-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathBYTESE1_DFS.cpp
More file actions
53 lines (49 loc) · 1.38 KB
/
BYTESE1_DFS.cpp
File metadata and controls
53 lines (49 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include<stdio.h>
int xf,yf,time,min;
int cntr;
int a[1010][1010];
int m,n;
int posx[4]={-1,1,0,0},posy[4]={0,0,1,-1};
void rescue(int c,int b){
if(cntr>time)return;
//printf("%d\n",cntr);
if(c==xf&&b==yf){
//printf("I am Here!");
if(min>cntr)min=cntr;
//printf("%d\n",min);
return;
}
//printf("%d\n",cntr);
int newx,newy;
for(int i=0;i<4;i++){
newx=c+posx[i];
newy=b+posy[i];
if(newx<0||newx>=m||newy<0||newy>=n)continue;
cntr+=a[newx][newy];
rescue(newx,newy);
cntr-=a[newx][newy];
}
}
int main(){
int t;
scanf("%d",&t);
while(t--){
cntr=0;
min=10000;
scanf("%d%d",&m,&n);
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
scanf("%d%d%d",&xf,&yf,&time);
xf--;yf--;
int xi=0,yi=0;
cntr+=a[xi][yi];
rescue(xi,yi);
if(min<=time){
printf("YES\n%d\n",time-min);
}else printf("NO\n");
}
return 0;
}