Cod sursa(job #1159709)
Utilizator | Data | 29 martie 2014 20:16:23 | |
---|---|---|---|
Problema | Zone | Scor | 80 |
Compilator | cpp | Status | done |
Runda | sambata_duminica | Marime | 2.07 kb |
#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,x,j,k,t,p,s1,y,q,s[10],r[10],a[515][515];
int main ()
{
freopen("zone.in","r",stdin);
freopen("zone.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=9;i++)
scanf("%d",&s[i]);
sort(s+1,s+10);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
scanf("%d",&x);
a[i][j]=x+a[i][j-1]+a[i-1][j]-a[i-1][j-1];
}
for(i=1;i<=n-1;i++)
for(j=1;j<=n-1;j++)
{
t=0;
for(q=1;q<=9;q++)
if(s[q]==a[i][j]){t=1;break;}
if(t==1)
{
for(k=i+1;k<=n-1;k++)
for(p=j+1;p<=n-1;p++)
{
s1=a[n][n]+a[k][p]-a[k][n]-a[n][p];
t=0;
for(q=1;q<=9;q++)
if(s[q]==s1){t=1;break;}
if(t==1)
{
r[1]=a[i][j];
r[2]=a[i][p]-a[i][j];
r[3]=a[i][n]-a[i][p];
r[4]=a[k][j]-a[i][j];
r[5]=a[k][p]+a[i][j]-a[k][j]-a[i][p];
r[6]=a[k][n]-a[k][p]+a[i][p]-a[i][n];
r[7]=a[n][j]-a[k][j];
r[8]=a[n][p]-a[k][p]-a[n][j]+a[k][j];
r[9]=s1;
sort(r+1,r+10);
t=0;
for(y=1;y<=9;y++)
if(r[y]!=s[y])
{
t++;
break;
}
if(t==0)
{
printf("%d %d %d %d",i,k,j,p);
return 0;
}
}
}
}
}
return 0;
}