Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int v[1000][1000],frv[7984010];
- int main()
- {
- int n,col,lin,s,ccol,clin,i,max,cnt;
- FILE *fin,*fout;
- fin=fopen("tinta.in","r");
- fout=fopen("tinta.out","w");
- fscanf(fin,"%d",&n);
- v[0][0]=1;
- i=2;
- ccol=1;
- clin=0;
- s=1;
- while((ccol!=n-1)||(clin!=n-1)){
- ///merge sus
- if(s==0){
- v[ccol][clin]=i;
- i++;
- while(ccol<n-1 && clin>0){
- ccol++;
- clin--;
- v[ccol][clin]=i;
- i++;
- }
- if(ccol==n-1)
- clin++;
- else
- ccol++;
- }else{///merge jos
- v[ccol][clin]=i;
- i++;
- while(ccol>0 && clin<n-1){
- clin++;
- ccol--;
- v[ccol][clin]=i;
- i++;
- }
- if(clin==n-1)
- ccol++;
- else
- clin++;
- }
- s=(s+1)%2;
- }
- v[n-1][n-1]=n*n;
- for(col=0;col<n;col++){
- for(lin=0;lin<n;lin++)
- fprintf(fout,"%d ",v[lin][col]);
- fprintf(fout,"\n");
- }
- max=0;
- for(col=1;col<n-1;col++){
- for(lin=1;lin<n-1;lin++){
- frv[v[lin-1][col]+v[lin][col-1]+v[lin-1][col-1]+v[lin+1][col-1]+v[lin-1][col+1]+v[lin+1][col]+v[lin][col+1]+v[lin+1][col+1]]=v[lin-1][col]+v[lin][col-1]+v[lin-1][col-1]+v[lin+1][col-1]+v[lin-1][col+1]+v[lin+1][col]+v[lin][col+1]+v[lin+1][col+1];
- if(v[lin-1][col]+v[lin][col-1]+v[lin-1][col-1]+v[lin+1][col-1]+v[lin-1][col+1]+v[lin+1][col]+v[lin][col+1]+v[lin+1][col+1]>max)
- max=v[lin-1][col]+v[lin][col-1]+v[lin-1][col-1]+v[lin+1][col-1]+v[lin-1][col+1]+v[lin+1][col]+v[lin][col+1]+v[lin+1][col+1];
- }
- }
- cnt=0;
- for(i=0;i<=max;i++){
- if(frv[i]>0){
- cnt++;
- }
- }
- fprintf(fout,"%d\n",cnt);
- for(i=0;i<=max;i++){
- if(frv[i]>0){
- fprintf(fout,"%d ",frv[i]);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement