Pagini recente » Cod sursa (job #2559608) | Borderou de evaluare (job #1954518) | Borderou de evaluare (job #1293956) | Borderou de evaluare (job #982637) | Cod sursa (job #874478)
Cod sursa(job #874478)
#include<cstdio>
#define MM 1010
using namespace std;
const int dl[]={-1,0,1,0};
const int dc[]={0,1,0,-1};
int mat[MM][MM],R,C,drag[MM][MM],nrdrg,inc,sf;
struct element{
int y;
int x;
}
element c[MM*7],start,stop;
void bordare(){
for(int i=0;i<=C+1;i++){
mat[0][i]=-1;
mat[R+1][i]=-1;
}
for(int j=0;j<=R+1;j++){
mat[i][0]=-1;
mat[i][C+1]=-1;
}
return;
}
void push (element P){
c[sf++]=P;
if(sf==MM*7)
sf=0;
return;
}
int empty(){
return inc==sf;
}
element pop{
element Q;
Q=c[inc++];
if(inc==DIM)
inc=0;
return Q;
}
void leed(){
element P,Q;
for(int i=1;i<=nrdrg;i++){
P.y=drag[i].y;
P.x=drag[i].x;
push(P);
}
while(empty()){
P=pop();
}
}
int main(){
FILE *in=fopen("barbar.in","r"),*out=fopen("barbar.out","w");
fscanf(in,"%d%d",&R,&C);
bordare();
char s[MM];
int x;
for(int i=1;i<=R;i++){
fgets(s,MM,in);
x=0;
while((s[x]!='\n')&&(s[x]!='\0')&&(s[x]!=EOF)){
if(s[x]=='*')
mat[i][x+1]=-1;
if(s[x]=='I'){
start.y=i;
start.x=x+1;
}
if(s[x]=='D'){
mat[i][x+1]=-2;
drag[++nrdrg].y=i;
drag[nrdrg].x=x+1;
}
if(s[x]=='0'){
stop.y=i;
stop.x=x+1;
}
}
}
leed();
}