Cod sursa(job #22986)

Utilizator rurutzairimia ruxandra maria rurutza Data 27 februarie 2007 21:36:32
Problema Zone Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.64 kb
#include<fstream.h>
ifstream f("zone.in");
ofstream g("zone.out");
unsigned long i,j,n,p,k,scor,aux,nr,c1,c2,s,l1,l2,a[10],b[10],m[100][100];
void main()
{
f>>n;
for(i=1;i<=9;i++)
{f>>a[i];
b[i]=1;}
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;
}
scor=0;
do
{k=1;
do
{
j=1;c1=1;
nr=1;
do
{
s=0;
for(p=1;p<=k;p++)
for(i=c1;i<=j;i++)
s=s+m[k][i];
for(i=1;i<=9;i++)
if(s==a[i]&&b[i]==1)
{
if(nr==1)
c1=j;
else
c2=j;
b[i]=0;
nr++;
l1=k ;
break;
}
if(nr==3)
break;
j++;
if(nr==3)
break;}
while(j<n);
if(nr==1)
k++;}
while(k<n);
k=l1;
p=1;
nr=0;
do
{
s=0;
for(i=k;i<=k+p;i++)
for(j=1;j<=c1;j++)

s=s+m[i][j];
for(i=1;i<=9;i++)
if(s==a[i]&&b[i]==1)
{
b[i]=0;
nr++;}
 s=0;
 for(i=k;i<=k+p;i++)
for(j=c1+1;j<=c2;j++)

s=s+m[i][j];
for(i=1;i<=9;i++)
if(s==a[i]&&b[i]==1)
{
b[i]=0;
nr++;}
 s=0;
 for(i=k;i<=k+p;i++)
for(j=c2+1;j<=n;j++)

s=s+m[i][j];
for(i=1;i<=9;i++)
if(s==a[i]&&b[i]==1)
{
b[i]=0;
nr++;}
if(nr==3)
{
l1=k+p;
nr=0;
s=0;
for(i=k;i<=k+p;i++)
for(j=1;j<=c1;j++)

s=s+m[i][j];
for(i=1;i<=9;i++)
if(s==a[i]&&b[i]==1)
{
b[i]=0;
nr++;}
 s=0;
 for(i=k;i<=k+p;i++)
for(j=c1+1;j<=c2;j++)

s=s+m[i][j];
for(i=1;i<=9;i++)
if(s==a[i]&&b[i]==1)
{
b[i]=0;
nr++;}
 s=0;
 for(i=k;i<=k+p;i++)
for(j=c2+1;j<=n;j++)

s=s+m[i][j];
for(i=1;i<=9;i++)
if(s==a[i]&&b[i]==1)
{
b[i]=0;
nr++;}
if(nr==3)
{
l2=k+p;break;
}
break;}
else
p++;  }
while(k+p<n);
scor=1;
for(i=1;i<=9;i++)
if(b[i]==1)
scor=0;}
while(scor==0);
g<<l1<<" "<<l2<<" "<<c1<<" "<<c2;
f.close();
g.close();
}