Pagini recente » Cod sursa (job #208662) | Cod sursa (job #580884) | Cod sursa (job #2493788) | Cod sursa (job #25395) | Cod sursa (job #1401723)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("zone.in");
ofstream fout("zone.out");
int N,K;
int VAL[10];
int MAT[513][513];
int S[513][513];
void Citire()
{
int i,j;
fin>>N;
for(i=1; i<=9; i++)
fin>>VAL[i];
for(i=1; i<=N; i++)
for(j=1; j<=N; j++)
fin>>MAT[i][j];
sort(VAL+1,VAL+10);
}
void SumaPartiala()
{
int i,j;
for(i=1; i<=N; i++)
for(j=1; j<=N; j++)
S[i][j]=S[i-1][j]+S[i][j-1]-S[i-1][j-1]+MAT[i][j];
}
void Rezolvare()
{
int l1,l2,c1,c2;
int v[10],i;
for(l1=1; l1<N; l1++)
for(l2=l1+1; l2<=N; l2++)
for(c1=1; c1<N; c1++)
for(c2=c1+1; c2<=N; c2++)
{
v[1]=S[l1][c1];
v[2]=S[l2][c1]-v[1];
v[3]=S[N][c1]-S[l2][c1];
v[4]=S[l1][c2]-S[l1][c1];
v[5]=S[l2][c2]-S[l2][c1]-S[l1][c2]+S[l1][c1];
v[6]=S[N][c2]-S[N][c1]-S[l2][c2]+S[l2][c1];
v[7]=S[l1][N]-S[l1][c2];
v[8]=S[l2][N]-S[l2][c2]-S[l1][N]+S[l1][c2];
v[9]=S[N][N]-S[N][c2]-S[l2][N]+S[l2][c2];
sort(v+1,v+10);
for(i=1;i<=9;i++)
if(VAL[i]!=v[i])
i=31;
if(i==10)
{
fout<<l1<<' '<<l2<<' '<<c1<<' '<<c2;
return ;
}
}
}
int main()
{
Citire();
SumaPartiala();
Rezolvare();
/*int v[10];
int l1=1,l2=3,c1=2,c2=3;
v[1]=S[l1][c1];
v[2]=S[l2][c1]-v[1];
v[3]=S[N][c1]-S[l2][c1];
v[4]=S[l1][c2]-S[l1][c1];
v[5]=S[l2][c2]-S[l2][c1]-S[l1][c2]+S[l1][c1];
v[6]=S[N][c2]-S[N][c1]-S[l2][c2]+S[l2][c1];
v[7]=S[l1][N]-S[l1][c2];
v[8]=S[l2][N]-S[l2][c2]-S[l1][N]+S[l1][c2];
v[9]=S[N][N]-S[N][c2]-S[l2][N]+S[l2][c2];
sort(v+1,v+10);
cout<<"!";*/
return 0;
}