Pagini recente » Cod sursa (job #2470437) | Cod sursa (job #2678914) | Cod sursa (job #3173779) | Cod sursa (job #110063) | Cod sursa (job #590134)
Cod sursa(job #590134)
#include<stdio.h>
#include<algorithm>
#define N 502
using namespace std;
int n,s[9],y[N][N],ss[9];
bool ver(int l1,int l2,int c1,int c2) {
int i; return true;
for(i=1;i<=9;++i) if(ss[i]!=1) {
}
}
int main() {
int i,j,pas,i1,k1,i2,j1,iii1,ii1,i3;
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[n+1]);
for(i=1;i<=n;++i)
for(j=1;j<=n;++j) {
scanf("%d",&y[i][j]);
y[i][j]+=y[i-1][j]+y[i][j-1]-y[i-1][j-1];
}
for(i=1;i<=n;++i) {
for(iii1=1;iii1<=9;++iii1) {
pas=1<<8;
for(j=0;pas!=0;pas>>=1) {
if(j+pas<=n && y[i][j+pas]<=s[iii1])
j+=pas;
}
if(y[i][j]==s[iii1]) {
ss[iii1]=1;
}
else
break;
}
for(i1=1;i1<=9;++i1) if(ss[i1]!=1) {
pas=1<<8;
for(i2=0;pas!=0;pas>>=1) {
if(i2+pas<=n && y[i2+pas][j]-y[i][j]<=s[i1])
i2+=pas;
}
if(y[i2][j]==s[i1]) {
ss[i1]=1;
}
else {
ss[iii1]=0;
break;
}
}
for(ii1=1;ii1<=9;++ii1) if(ss[ii1]!=1) {
pas=1<<8;
for(i3=0;pas!=0;pas>>=1) {
if(i3+pas<=n && y[i][i3+pas]-y[i][j]<=s[ii1])
i3+=pas;
}
if(y[i][i3]==s[ii1]) {
ss[ii1]=1;
}
else {
ss[iii1]=0;
s[i1]=0;
break;
}
}
if(ver(i,i2,j,i3)) {
printf("%d %d %d %d",i,i2,j,i3);
return 0;
}
ss[iii1]=0;
s[i1]=0;
ss[ii1]=1;
}
return 0;
}