Cod sursa(job #19533)

Utilizator mihai0110Bivol Mihai mihai0110 Data 19 februarie 2007 18:31:02
Problema Zone Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include<fstream.h>
unsigned long i,j,n,li,ls,m,aux,p,l1,l2,c1,c2,a[513][513],b[513][513],v[10],w[10];
ifstream f("zone.in");
ofstream g("zone.out");
int main()
{
f>>n;
for(i=1;i<=9;i++)
f>>v[i];
for(i=1;i<9;i++)
for(j=i+1;j<=9;j++)
if(v[i]>v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
b[1][1]=a[1][1];
for(j=2;j<=n;j++)
{
b[1][j]=b[1][j-1]+a[1][j];
b[j][1]=b[j-1][1]+a[j][1];
}
for(i=2;i<=n;i++)
for(j=2;j<=n;j++)
b[i][j]=a[i][j]+b[i-1][j]+b[i][j-1]-b[i-1][j-1];
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]-w[1];
w[3]=b[l1][n]-b[l1][c2];
w[4]=b[l2][c1]-w[1];
w[5]=b[l2][c2]-w[1]-w[2]-w[4];
w[6]=b[l2][n]-w[1]-w[2]-w[3]-w[4]-w[5];
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[8]-w[7];
p=1;
for(i=1;i<=9;i++)
{
li=1;
ls=9;
while(li<=ls)
{
m=(li+ls)/2;
if(v[m]==w[i])
break;
else
if(v[m]<w[i])
li=m+1;
else
ls=m-1;
}
if(li>ls)
{
p=0;
break;
}
}
if(p)
{
g<<l1<<" "<<l2<<" "<<c1<<" "<<c2;
l1=n+1;
l2=n+1;
c1=n+1;
c2=n+1;
}
}
f.close();
g.close();
return 0;
}