#include #include int main() { FILE* infile, *outfile; unsigned char ch,ch2; int rows=0,cols=0,max=0; int n,m,p,k; infile=fopen("image.ppm","r"); for(n=0;n<3;n++) { fread(&ch,sizeof(char),1,infile); //P,6,\n } while(1) { fread(&ch,sizeof(char),1,infile); if(ch==' ') break; cols*=10; cols+=(ch-'0'); } while(1) { fread(&ch,sizeof(char),1,infile); if(ch=='\n') break; rows*=10; rows+=(ch-'0'); } while(1) { fread(&ch,sizeof(char),1,infile); if(ch=='\n') break; max*=10; max+=(ch-'0'); } int color[rows][cols][3]; for(n=0;nnewwidth;p--) { int minsum=256*rows; int minpath[rows]; int sum=0; int path[rows]; int lowIndex,low; for(n=1;n gradient[m][path[m-1]] && gradient[m][path[m-1]-1] > gradient[m][path[m-1]+1]) { lowIndex=path[m-1]-1; low=gradient[m][path[m-1]-1]; } else if(gradient[m][path[m-1]] > gradient[m][path[m-1]+1]) { lowIndex=path[m-1]; low=gradient[m][path[m-1]]; } else { lowIndex=path[m-1]+1; low=gradient[m][path[m-1]+1]; } sum+=low; path[m]=lowIndex; } if(sum