Анализ двоичного кода в ч\б изображения - C (СИ)
Формулировка задачи:
Попалась вот такая задачка:
Есть аналогичная: вместо чёрного столбца - черная строка.
Я написал 25 сантиметров кода:
Для проверки программа отправляется на сервер, сервер подставляет свой input.txt.
Про мой код сервер отзывается негативно. Я считаю, что не учитываю какую-то крайнюю точку, подкладываемую сервером, но уже который час не могу её найти. Помогите пожалуйста.
#include <stdio.h> void main () { int p,ed,nu,k,e[1000],i,n,m,l[2],f,j; char x,c[1000]; FILE *inp,*out; inp=fopen("input.txt","r"); out=fopen("output.txt","w"); fscanf(inp,"%d",&p); ed=1; nu=0; k=0; f=0; while (feof(inp)==0) { fscanf(inp,"%c",&x); if (x=='1'){ f=1; k++; e[ed]=k; ed=ed+1; c[k]=x; } if (x=='0'){ k++; nu=nu+1; c[k]=x; } } ed=ed-1; if (f==0){ fprintf(out,"Impossible"); fclose(inp); fclose(out); } if(x=='1') { k=k-1; ed=ed-1; } if(x=='0') { k=k-1; nu=nu-1; } if (p!=k){ fprintf(out,"Impossible7"); fclose(inp); fclose(out); } if (p%ed!=0){ fprintf(out,"Impossible6"); fclose(inp); fclose(out); } for(i=3;i<=ed;i++){ if (e[i]-e[i-1]!=e[2]-e[1]){ fprintf(out,"Impossible5"); fclose(inp); fclose(out); } } l[1]=0; l[2]=0; if (c[1]=='1' && c[k]=='0' && ed>1){ for(i=e[ed];i<k; i++) l[2]++; if (l[2]!= e[2]-e[1]-1){ fprintf(out,"Impossible4"); fclose(inp); fclose(out); } } if (c[1]=='0' && c[k]=='1' && ed>1){ for(i=1;i<e[1]; i++) l[1]++; if (l[1]!= e[2]-e[1]-1){ fprintf(out,"Impossible3"); fclose(inp); fclose(out); } } if (c[1]=='1' && c[k]=='1' && ed==2 && n>2) { fprintf(out,"Impossible2"); fclose(inp); fclose(out); } if (c[1]=='0' && c[k]=='0' && ed>1){ for(i=1;i<e[1];i++) l[1]++; for(i=e[ed];i<k; i++) l[2]++; if (l[1]+l[2]!=e[2]-e[1]-1){ fprintf(out,"Impossible1"); fclose(inp); fclose(out); } } n=ed; m=p/n; fprintf(out,"%d %d",n, m); fclose(inp); fclose(out); inp=fopen("input.txt","w"); for(j=1;j<m;j++){ for( i=1+m*(j-1);i<=(m*j);i++ ) { if (i<m*j) fprintf(inp,"%c ",c[i]); else fprintf(inp,"%c",c[i]); } fprintf(inp,"\n"); } fclose(inp); }
Помогите с задачкой,2 день уже сижу над ней,мысли кончились.Помогите кто знает\*----*/
Решение задачи: «Анализ двоичного кода в ч\б изображения»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(void) { int N, tick, x = -1, step = -1, i; freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); scanf("%d", &N); for (i=0; i < N && scanf("%d", &tick); i++) if (tick == 1) { if (x == -1 && step != -1) x = i - step; else if (i - step != x && x != -1) { printf("Impossible"); return 0; } step = i; } printf("%d %d", N / x, x); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д