Cod sursa(job #1937711)
Utilizator | Data | 24 martie 2017 10:16:11 | |
---|---|---|---|
Problema | Zone | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.7 kb |
#include<cstdio>
const int NMAX=512;
const int ZMAX=9;
int v[ZMAX+1];
int vv[ZMAX+1];
int a[NMAX+1][NMAX+1];
int s[NMAX+1][NMAX+1];
int caut(int var)
{
int gasit=0;
for(int i=1;i<=n && gasit==0;i++)
{
if(v[i]==var)
gasit=1;
}
return gasit;
}
int main()
{
int n;
freopen("zone.in","r",stdin);
freopen("zone.out","w",stdout);
scanf("%d ",&n);
for(int i=1;i<=9;i++)
{
scanf("%d ",&v[i]);
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
scanf("%d ",&a[i][j]);
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
s[i][j]=a[i][j]+s[i-1][j]+s[i][j-1]-s[i-1][j-1];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
//zona 1;
vv[1]=s[i][j];
if(caut(vv[1])==1)
{
//zona 2;
int pp=0,ss=0;
for(int ci=1,q=1;ci<=n && q<=i && ci<=i && pp==0;ci++,q++)
{
for(int cj=j;cj<=n && pp==0;cj++)
{
ss+=a[ci][cj];
if(caut(ss)==1)
{
pp=1;
z=cj;
}
}
}
if(pp==1)
{
//zona 3;
pp=ss=0;
for(int ci=1;ci<=i && pp==0;ci++)
{
for(int cj=z;cj<=n && pp==0;cj++)
{
ss+=a[ci][cj];
if(caut(ss)==1)
pp=1;
}
}
if(pp==1)
{
//zona 4;
pp=ss=0;
for(int ci=i;ci<=n && pp==0;ci++)
{
for(int cj=1;cj<=j && pp==0;cj++)
{
ss+=a[ci][cj];
if(caut(ss)==1)
pp=1;
}
}
if(pp==1)
{
//zona 7;
pp=ss=0;
for(int ci=i;)
}
}
}
}
}
}
return 0;
}