Cod sursa(job #901745)

Utilizator lehman97Dimulescu David lehman97 Data 1 martie 2013 11:32:59
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <stdio.h>
#include <algorithm>

using namespace std;

FILE *f=fopen("spirala.in","r");
FILE *g=fopen("spirala.out","w");


int n,nr,i,a[101][101],k,j,m,nn,ok,k1,k2;

int main()
{
    fscanf(f,"%d%d",&n,&m);
    nr=0;
    nn=min(n,m);
    for(k=1;k<=nn/2+nn%2;k++)
    {
        k1=n-2*k+2;k2=m-2*k+2;

        //1
        for(j=k;j<=k+k1-1;j++)
            a[k][j]=++nr;
        //2
        for(j=k+1;j<=k+k2-1;j++)
        a[j][k+k1-1]=++nr;
        //3
        for(j=k+k1-2;j>=k;j--)
        a[k+k2-1][j]=++nr;
        //4
        for(j=k+k2-2;j>k;j--)
        a[j][k]=++nr;
    }
    for(i=1;i<=m;i++)
    {
        for(j=1;j<=n;j++)
            fprintf(g,"%d ",a[i][j]);
        fprintf(g,"\n");
    }
    fclose(g);
    return 0;
}