Pagini recente » Cod sursa (job #300596) | Cod sursa (job #358125) | Cod sursa (job #2250016) | Cod sursa (job #2850385) | Cod sursa (job #587273)
Cod sursa(job #587273)
#include <cstdio>
#include <vector>
using namespace std;
FILE *f,*g;
bool a[1010][1010];
int l[1010],c[1010];
struct cp{int x,y;}aux ;
vector <cp> cod;
int i,j,n,con;
void vf(int i,int j) {
int x,y;
for (x=i,y=j;x<=n && y<=n;x++,y++)
a[x][y]=true;
for (x=i,y=j;x>=1 && y<=n;x--,y++)
a[x][y]=true;
for (x=i,y=j;x>=1 && y>=1;x--,y--)
a[x][y]=true;
for (x=i,y=j;x<=n && y>=1;x++,y--)
a[x][y]=true;
}
int main() {
f=fopen("dame.in","r");
g=fopen("dame.out","w");
fscanf(f,"%d",&n);
con=0;
for (i=n-1+(n%2),j=1;j<=n/2+n%2;j++,i-=2,con++) {
vf(i,j);
l[i]=1;
c[j]=1;
aux.x=i;
aux.y=j;
cod.push_back(aux);
}
if (l[n]==1)
i=n-1;
else
i=n;
int q;
for (;i>=1;i-=2) {
for (q=j;q<=n;q++) {
if (c[q]==0 && a[i][q]==false) {
aux.x=i;
aux.y=q;
cod.push_back(aux);
vf(i,q);
c[q]=1;
con++;
break;
}
}
}
fprintf(g,"%d\n",con+1);
for (i=0;i<cod.size();i++)
fprintf(g,"%d %d\n",cod[i].x,cod[i].y);
fclose(g);
return 0;
}