Cod sursa(job #29093)

Utilizator rurutzairimia ruxandra maria rurutza Data 8 martie 2007 17:03:31
Problema Zone Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<fstream.h>
ifstream f("zone.in");
ofstream g("zone.out");
int n,nr,i,j,mi,aux,li,ls,l1,l2,c1,c2,ne,p,v[10],a[10],m[100][100],w[10],b[100][100];
void main()
{
f>>n;
nr=0;
for(i=1;i<=9;i++)
f>>a[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>m[i][j];
for(i=1;i<=9;i++)
for(j=i+1;j<=9;j++)
if(a[i]>a[j])
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
}
b[1][1]=m[1][1];
for(j=2;j<=n;j++)
{b[1][j]=m[1][j]+b[1][j-1];
b[j][1]=m[j][1]+b[j-1][1];
}
for(i=2;i<=n;i++)
for(j=2;j<=n;j++)
b[i][j]=m[i][j]+b[i-1][j]+b[i][j-1]-b[i-1][j-1];
n=n;
for(l1=1;l1<n;l1++)
for(l2=l1+1;l2<n;l2++)
for(c1=1;c1<n;c1++)
for(c2=c1+1;c2<n;c2++)
{
w[1]=b[l1][c1];
w[2]=b[l1][c2]-b[l1][c1];
w[3]=b[l1][n]-b[l1][c2];
w[4]=b[l2][c1]-b[l1][c1];
w[5]=b[l2][c2]-w[4]-b[l1][c2];
w[6]=b[l2][n]-b[l2][c2]-w[3];
w[7]=b[n][c1]-b[l2][c1];
w[8]=b[n][c2]-b[l2][c2]-w[7];
w[9]=b[n][n]-b[l2][n]-w[7]-w[8];
p=1;
for(i=1;i<=9;i++)
{li=1;
ls=9;
while(li<=ls)
{
mi=(li+ls)/2;
if(w[i]==a[mi])
break;
else
if(w[i]>a[mi])
li=mi+1;
else
ls=mi-1;
}
if(li>ls)
{
p=0;
break;
}
}
if(p==1)
{g<<l1<<" "<<l2<<" "<<c1<<" "<<c2;
li=n+1;
l2=n+1;
c1=n+1;
c2=n+1;
nr=1;
}
}
if(nr==0)
cout<<"-1";
g.close();
}