Cod sursa(job #1117721)

Utilizator margikiMargeloiu Andrei margiki Data 23 februarie 2014 19:15:25
Problema Zone Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.87 kb
# include <fstream>
# include <algorithm>
using namespace std;
ifstream f("zone.in");
ofstream g("zone.out");
int i,j,n,m,i1,i2,j1,j2;
int sum[10],Sum[10],a[600][600];
int verificare (int s)
{
    int i,ok=0;
    for (i=1; i<=9 && ok==0; ++i)
        if (sum[i]==s) ok=1;
    return ok;
}
int main ()
{
    f>>n;
    for (i=1; i<=9; ++i)
        f>>sum[i];
    sort(sum+1,sum+10);
    for (i=1; i<=n; ++i)
        for (j=1; j<=n; ++j)
        {
            f>>a[i][j];
            a[i][j]+=a[i][j-1]+a[i-1][j]-a[i-1][j-1];
        }
    for (i1=1; i1<n; ++i1)
        for (j1=1; j1<n; ++j1)
            if (verificare(a[i1][j1])==1)
                for (i2=i1+1; i2<=n; ++i2)
                    if (verificare(a[i2][j1]-a[i1][j1])==1)
                        for (j2=j1+1; j2<=n; ++j2)
                        {
                            Sum[1]=a[i1][j1];
                            Sum[2]=a[i1][j2]-Sum[1];
                            Sum[3]=a[i1][n]-Sum[2]-Sum[1];
                            Sum[4]=a[i2][j1]-Sum[1];
                            Sum[5]=a[i2][j2]-Sum[4]-Sum[2]-Sum[1];
                            Sum[6]=a[i2][n]-Sum[5]-Sum[3]-Sum[2]-Sum[1]-Sum[4];
                            Sum[7]=a[n][j1]-Sum[4]-Sum[1];
                            Sum[8]=a[n][j2]-Sum[7]-Sum[5]-Sum[4]-Sum[1]-Sum[2];
                            Sum[9]=a[n][n]-Sum[8]-Sum[3]-Sum[7]-Sum[6]-Sum[5]-Sum[4]-Sum[1]-Sum[2];
                            sort(Sum+1, Sum+10);
                            bool ok=0;
                            for(i=1; i<=9; ++i)
                                if(Sum[i]!=sum[i]) ok=1;
                            if(ok==0)
                            {
                                g<<i1<<" "<<i2<<" "<<j1<<" "<<j2<<"\n";
                                return 0;
                            }
                        }
    return 0;
}