This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;
#define get Measure
int val[207][207];
int ansx=1,ansy=1,fx,fy;
int dx[]={+1,-1,0,0};
int dy[]={0,0,+1,-1};
int n,m,x;
void rev(int lx,int ly,int rx,int ry,int type){
int diradd=0,dirsub=0,curx,cury;
if(type==1){
curx=fx;
cury=1;
diradd=2;
dirsub=1;
}
else if(type==2){
curx=1;
cury=fy;
diradd=0;
dirsub=2;
}
else if(type==3){
curx=n;
cury=fy;
diradd=1;
dirsub=3;
}
else{
curx=fx;
cury=m;
diradd=3;
dirsub=0;
}
while(curx>=lx && cury>=ly && curx<=rx && cury<=ry){
int val=get(curx,cury);
if(val==x){
Pinpoint(curx,cury);
}
else if(val>x){
curx+=dx[dirsub];
cury+=dy[dirsub];
}
else{
curx+=dx[diradd];
cury+=dy[diradd];
}
}
}
void Rescue(int R, int C, int RS, int CS, int X) {
n=R;
m=C;
fx=RS;
fy=CS;
x=X;
rev(1,1,RS,CS,1);
rev(1,CS,RS,C,2);
rev(RS,1,R,CS,3);
rev(RS,CS,R,C,4);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |