Cod sursa(job #576003)
Utilizator | Data | 9 aprilie 2011 09:28:00 | |
---|---|---|---|
Problema | Tablete | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.35 kb |
#include<stdio.h>
FILE *f, *g;
int n, k, p, i, j, a[1001][1001], x, c, t, r;
int main()
{
f=fopen("tablete.in", "r");
g=fopen("tablete.out", "w");
fscanf(f, "%d %d", &n, &k);
p=1;
for(i=1; i<=n; ++i)
for(j=1; j<=k; ++j) if(!a[i][j] && j!=k) { a[i][j]=p;
++p;
}
else if(j==k) if(p%2==0) { a[i][j]=p;
++p;
}
else { a[i][j]=p+1;
a[i+1][1]=p;
p+=2;
}
c=1;
for(i=1; i<=n; ++i)
{ while(c<=x) for(j=1; j<=n; ++j) if(a[i][j]==c) { ++c;
i=1;
j=n+1;
}
else for(t=1; t<=n; ++t)
for(r=k+1; r<=n; ++r) if(c>a[t][r-1]) { a[t][r]=c;
t=r=n+1;
++c;
i=1;
j=n+1;
}
}
for(i=1; i<=n; ++i)
for(j=k+1; j<=n; ++j) { a[i][j]=p; ++p;}
for(i=1; i<=n; ++i)
{ for(j=1; j<=n; ++j) fprintf(g, "%d ", a[i][j]);
fprintf(g, "\n");
}
fclose(f);
fclose(g);
return 0;
}