Pagini recente » Cod sursa (job #2152436) | Cod sursa (job #2653797) | Cod sursa (job #1966671) | Cod sursa (job #2906377) | Cod sursa (job #1128723)
#include <cstdio>
#include <algorithm>
#define NMAX 517
using namespace std;
long long sol[17], a[NMAX][NMAX], sum[17];
long long n;
bool Check(long long a)
{
for(long long i = 1; i <= 9; ++i)
if(sol[i] == a)
return 1;
return 0;
}
int main(){
freopen("zone.in", "r", stdin);
freopen("zone.out", "w", stdout);
scanf("%lld", &n);
for(long long i = 1; i <= 9; ++i)
scanf("%lld", &sol[i]);
sort(sol + 1, sol + 10);
for(long long i = 1; i <= n; ++i)
for(long long j = 1; j <= n; ++j)
{
scanf("%lld", &a[i][j]);
a[i][j] = a[i][j - 1] + a[i - 1][j] + a[i][j] - a[i - 1][j - 1];
}
for(long long l1 = 1; l1 <= n; ++l1)
for(long long c1 = 1; c1 <= n; ++c1)
if(Check(a[l1][c1]) == 1)
for(long long l2 = 1; l2 <= n; ++l2)
if(Check(a[l2][c1] - a[l1][c1]) == 1)
for(long long c2 = 1; c2 <= n; ++c2)
{
sum[1] = a[l1][c1];
sum[2] = a[l1][c2] - sum[1];
sum[3] = a[l1][n] - sum[2] - sum[1];
sum[4] = a[l2][c1] - sum[1];
sum[5] = a[l2][c2] - sum[4] - sum[2] - sum[1];
sum[6] = a[l2][n] - sum[5] - sum[3] - sum[2] - sum[1] - sum[4];
sum[7] = a[n][c1] - sum[4] - sum[1];
sum[8] = a[n][c2] - sum[7] - sum[5] - sum[4] - sum[1] - sum[2];
sum[9] = a[n][n] - sum[8] - sum[3] - sum[7] - sum[6] - sum[5] - sum[4] - sum[1] - sum[2];
sort(sum + 1, sum + 10);
bool ok = 0;
for(long long i = 1; i <= 9; ++i)
if(sum[i] != sol[i])
ok = true;
if(ok == false)
{
printf("%lld %lld %lld %lld\n", l1, l2, c1, c2);
return 0;
}
}
printf("-1");
return 0;
}