Cod sursa(job #1455485)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 28 iunie 2015 02:35:44
Problema Lacate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <cstdio>
#define DIM 512
using namespace std;

int N, M, i, j, K, A[DIM][DIM];

int main(){

    freopen("lacate.in" ,"r", stdin );
    freopen("lacate.out","w", stdout);

    scanf("%d", &N);

    if(N == 2) printf("1 1\n1\n1");
    if(N == 3) printf("3 2\n1 2\n2 3\n3 1");
    if(N >= 4){

        printf("%d %d\n", N * (N-1) / 2, N - 1);

        A[1][1] = A[2][1] = 1;

        for(int i = 2, j = 2, k = N - 1; j < N; i ++, j ++, k --){
            A[ i ][j] = A[i][j-1] + k;
            A[i+1][j] = A[i][j-1] + k;
        }

        for(int i = 1; i <= N - 2; i ++)
            for(int j = i + 1; j < N; j ++)
                A[i][j] = A[i][j-1] + 1;

        for(int i = 3; i <= N; i ++)
            for(int j = 1; j <= i - 2; j ++)
                A[i][j] = A[i-1][j] + 1;

        for(int i = 1; i <= N; i ++){
            for(int j = 1; j < N; j ++)
                printf("%d ", A[i][j]);
            printf("\n");
        }

    }

    fclose(stdin );
    fclose(stdout);

    return 0;
}