#include <iostream>
#include <fstream>

using namespace std;

fstream papam, habemus; 

int jp2[320][200];
int wBez(int x)
{
    if(x<0)
    {
        //cout<<"|"<<x*(-1)<<"\n";
        return (-1)*x;
    }
    //cout<<"|"<<x<<"\n";
    return x;
}

int dododejm(int x, char a, bool b)
{
    if(x==199&&a=='y'&&b)
        return 199;
    if(x==319&&a=='x'&&b)
        return 319;
    if(x==0&&!b)
        return 0;
    if(b)
        return x+1;
    return x-1;
}

bool czyKontrast(int x, int y)
{
    if(wBez(jp2[dododejm(x,'x',true)][y]-jp2[x][y])>128||
       wBez(jp2[dododejm(x,'x',false)][y]-jp2[x][y])>128||
       wBez(jp2[x][dododejm(y,'y',true)]-jp2[x][y])>128||
       wBez(jp2[x][dododejm(y,'y',false)]-jp2[x][y])>128)
        return true;
    return false;
}

int main()
{
    //cout<<"poczatek\n\n\n";
    papam.open("dane.txt", ios::in);
    habemus.open("wyniki6.txt", ios::out);
    int pd1max=0, pd1min=256;
    int pd2sym=0;
    int pd3=0;
    for(int i=0; i<200; i++)
    {
        int sympom=0;
        for(int ii=0; ii<320; ii++)
        {
            papam>>jp2[ii][i];
            if(jp2[ii][i]>pd1max)
                pd1max=jp2[ii][i];
            if(jp2[ii][i]<pd1min)
                pd1min=jp2[ii][i];
        }
        for(int ii=0; ii<160; ii++)
            if(jp2[ii][i]==jp2[319-ii][i])
                sympom++;
        if(sympom==160)
            pd2sym++;
    }

    for(int i=0; i<200; i++)
    {
        for(int ii=0; ii<320; ii++)
        {
            if(czyKontrast(ii,i))
                pd3++;
        }
    }

    int pd4pom[320]={0};
    for(int i=0; i<320; i++)
    {
        int pom=1;
        for(int ii=0; ii<199; ii++)
        {
            if(jp2[i][ii]==jp2[i][ii+1])
                pom++;
            else
                {if(pd4pom[i]<pom)
                    pd4pom[i]=pom;pom=0;}
        }
    }
    int pd4=0;
    for(int i=0; i<320; i++)
    {
        //cout<<pd4pom[i]<<endl;
        if(pd4<pd4pom[i])
            pd4=pd4pom[i];
    }

    int pd2=200-pd2sym;
    habemus<<"1. najciemniejszy: "<<pd1min<<"\tnajjasnieszy: "<<pd1max<<"\n2. "<<pd2<<"\n3. "<<pd3<<"\n4. "<<pd4;

}
