Cod sursa(job #1747011)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 24 august 2016 13:11:42
Problema Tije Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <cstdio>
#define BUF_SIZE 1<<17
int pos;
char buf[BUF_SIZE];
FILE *fout;
inline void putch(char ch){
    buf[pos++]=ch;
    if(pos==BUF_SIZE) fwrite(buf, BUF_SIZE, 1, fout), pos=0;
}
inline void baga(int x){
    if(x<10)
        putch(x+'0');
    else if(x<100){
        putch(x/10+'0');
        putch(x%10+'0');
    }else{
        putch(x/100+'0');
        putch((x/10)%10+'0');
        putch(x%10+'0');
    }
}
inline void move(int x, int y){
    baga(x);
    putch(' ');
    baga(y);
    putch('\n');
}
int main(){
    int n, k, i, j;
    FILE *fin;
    fin=fopen("tije.in", "r");
    fout=fopen("tije.out", "w");
    fscanf(fin, "%d", &n);
    k=n+1;
    while(n>1){
        for(i=0; i<n; i++)
            move(n, k);
        for(i=1; i<n; i++)
            move(i, n);
        for(i=1; i<=n; i++)
            move(k, i);
        for(i=1; i<n; i++){
            for(j=0; j<n; j++)
                move(i, k);
            move(i+1, i);
            for(j=1; j<n; j++)
                move(k, i);
            move(k, i+1);
        }
        n--;
    }
    if(pos!=0)
        fwrite(buf, pos, 1, fout);
    fclose(fin);
    fclose(fout);
    return 0;
}