Pagini recente »
2021-02-12-clasa-6-tema-23
|
2024-01-23-clasa-6-tema-17
|
2024-09-17-clasa-6-tema-09
|
Istoria paginii runda/9c_tema10
|
Cod sursă (job #595778)
Cod sursă (job
#595778)
#include <stdio.h>
#include <stdlib.h>
int v[20][20],r[400][4];
int n,m,k;
FILE *fin, *fout;
int bkt(int id){
int i,j;
if(id == k-1){
for(i=0;i<id;i++){
fprintf(fout,"%d %d %d %d\n",r[i][0]+1,r[i][1]+1,r[i][2]+1,r[i][3]+1);
}
return 1;
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(v[i][j] == 1){
r[id][0] = i;
r[id][1] = j;
if(i>1 && v[i-1][j]==1 && v[i-2][j] == 0){
r[id][2] = i-2;
r[id][3] = j;
v[i-2][j] = 1;
v[i][j] = v[i-1][j] = 0;
if(bkt(id + 1) == 1)
return 1;
v[i-2][j] = 1;
v[i][j] = v[i-1][j] = 0;
}
if(i<n-2 && v[i+1][j] == 1 && v[i+2][j] == 0){
r[id][2] = i+2;
r[id][3] = j;
v[i+2][j]=1;
v[i+1][j] = v[i][j] = 0;
if(bkt(id + 1) == 1)
return 1;
v[i+2][j]=0;
v[i+1][j] = v[i][j] = 1;
}
if(j>1 && v[i][j-1]==1 && v[i][j-2] == 0){
r[id][2] = i;
r[id][3] = j-2;
v[i][j-2] = 1;
v[i][j] = v[i][j-1] = 0;
if(bkt(id + 1) == 1)
return 1;
v[i][j-2] = 0;
v[i][j] = v[i][j-1] = 1;
}
if(j<m-2 && v[i][j+1]==1 && v[i][j+2] == 0){
r[id][2] = i;
r[id][3] = j+2;
v[i][j+2] = 1;
v[i][j] = v[i][j+1] = 0;
if(bkt(id + 1) == 1)
return 1;
v[i][j+2] = 0;
v[i][j] = v[i][j+1] = 1;
}
}
}
}
return 0;
}
int main(){
int l,c,i;
fin=fopen("immortal.in","r");
fscanf(fin,"%d%d%d",&n,&m,&k);
for(i=0;i<k;i++){
fscanf(fin,"%d%d",&l,&c);
v[l-1][c-1]=1;
}
fclose(fin);
fout=fopen("immortal.out","w");
bkt(0);
fclose(fout);
return 0;
}