/* venerdi' 13/12/2014, svolgiamo insieme questo problema da COCI con ragazzi di superiori ed universitari. Seconda soluzione: O(1) memoria con gestione in streaming. */ #include #include #define MAX_M 10 #define MAX_N 10 #define MAX_H 20 #define MAX_V 20 FILE* fr; FILE* fw; int m, n; int up, left, right, down; char mat[MAX_H][MAX_V]; char paint(int i,int j){ char risp; if( (iup+m) || (jleft+n) ) { return ((i+j)%2==0)? '#':'.'; } do { fscanf(fr,"%c", &risp); }while((risp>='A')&&(risp<='z')); return risp; } int main(void) { int i,j; fr=fopen("input.txt","r"); fw=fopen("output.txt","w"); fscanf(fr,"%i", &m); fscanf(fr,"%i", &n); fscanf(fr,"%i", &up); fscanf(fr,"%i", &left); fscanf(fr,"%i", &right); fscanf(fr,"%i", &down); for(i = 0; i < m+down+up; i++) { for(j = 0 ; j < n+left+right; j++) fprintf(fw,"%c", paint(i,j) ); fprintf(fw,"\n"); } fclose(fr); fclose(fw); return 0; }