Pagini recente » Cod sursa (job #1087129) | Cod sursa (job #1592371) | Cod sursa (job #1149518) | Cod sursa (job #2021778) | Cod sursa (job #18544)
Cod sursa(job #18544)
#include <stdio.h>
int m[513][513],a[513][513],v[513],u[513];
int i,j,l1,l2,c1,c2,n,sum;
bool exist(int x)
{
int g;
for (int i=1;i<=9;++i)
if (v[i]==x && u[i]==0)
{
u[i]=1;
return true;
}
return false;
}
void unmark()
{
for (int i=1;i<=9;++i) u[i]=0;
}
int main()
{
freopen("zone.in","r",stdin);
freopen("zone.out","w",stdout);
scanf("%d",&n);
for (i=1;i<10;++i) scanf("%d",&v[i]);
for (i=1;i<=n;++i)
for (j=1;j<=n;++j) scanf("%d",&m[i][j]);
for (i=1;i<=n;++i)
{
sum=0;
for (j=1;j<=n;++j)
{
sum+=m[i][j];
a[i][j]=sum+a[i-1][j];
}
}
for (l1=1;l1<=n;++l1)
for (c1=1;c1<=n;++c1)
{
if (exist(a[l1][c1]))
{
for (l2=l1+1;l2<=n;++l2)
for (c2=c1+1;c2<=n;++c2)
if (exist(a[n][n]-a[l2][n]-a[n][c2]+a[l2][c2]))
{
if (exist(a[l2][c1]-a[l1][c1]))
if (exist(a[n][c1]-a[l2][c1]))
if (exist(a[l1][c2]-a[l1][c1]))
if (exist(a[l1][n]-a[l1][c2]))
if (exist(a[l2][c2]+a[l1][c1]-a[l1][c2]-a[l2][c1]))
if (exist(a[l2][n]+a[l1][c2]-a[l1][n]-a[l2][c2]))
if (exist(a[n][c2]+a[l2][c1]-a[n][c1]-a[l2][c2]))
printf("%d %d %d %d\n",l1,l2,c1,c2);
unmark();
}
unmark();
}
}
return 0;
}