Pagini recente » Cod sursa (job #3147945) | Cod sursa (job #2499062) | Cod sursa (job #2460112) | Cod sursa (job #271860) | Cod sursa (job #20756)
Cod sursa(job #20756)
#include<stdio.h>
int n,i,j,l1,l2,c1,c2,viz[10];long int t[10],a,s[51][51],aux,gasit;
int main()
{ FILE *f=fopen("zone.in","r");
/*CITIRE*/fscanf(f,"%d",&n);
for(i=1;i<=9;i++)
fscanf(f,"%ld",&t[i]);
for(i=1;i<=8;i++)for(j=i+1;j<=9;j++)if(t[i]>t[j]){aux=t[i];t[i]=t[j];t[j]=aux;}
for(i=1;i<=n;i++)for(j=1;j<=n;j++){fscanf(f,"%ld",&a);s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a;}fclose(f);
for(l1=1;l1<=n-2;l1++)
{gasit=0;
for(i=1;i<=9;i++)
viz[i]=0;
for(c1=1;c1<=n-1;c1++)
{if(s[l1][c1]>t[9])break;
for(i=1;i<=9;i++)
if(t[i]==s[l1][c1])
{gasit=1;viz[i]=1;break;}
if(gasit)
{gasit=0;
for(l2=l1+1;l2<=n-1;l2++)
{if(s[l2][c1]-s[l1][c1]>t[9]) break;
for(i=1;i<=9;i++)
if((viz[i]==0)&&(t[i]==(s[l2][c1]-s[l1][c1])))
{gasit=1;viz[i]=1;break;}
if(gasit)
{gasit=0;
for(i=1;i<=9;i++)
if((viz[i]==0)&&(t[i]==(s[n][c1]-s[l2][c1])))
{gasit=1;viz[i]=1;break;}
if(gasit)
{gasit=0;
for(c2=c1+1;c2<=n-1;c2++)
{if(s[l1][c2]-s[l1][c1]>t[9]) break;
for(i=1;i<=9;i++)
if((viz[i]==0)&&(t[i]==(s[l1][c2]-s[l1][c1])))
{gasit=1;viz[i]=1;break;}
if(gasit)
{gasit=0;
for(i=1;i<=9;i++)
if((viz[i]==0)&&(t[i]==(s[l1][n]-s[l1][c2])))
{gasit=1;viz[i]=1;break;}
if(gasit)
{gasit=0;
for(i=1;i<=9;i++)
if((viz[i]==0)&&(t[i]==(s[l2][c2]-s[l1][c2]-s[l2][c1]+s[l1][c1])))
{gasit=1;viz[i]=1;break;}
if(gasit)
{gasit=0;for(i=1;i<=9;i++)
if((viz[i]==0)&&(t[i]==(s[n][n]-s[l2][n]-s[n][c2]+s[l2][c2])))
{gasit=1;viz[i]=1;break;}
}
}
}
}
}
}
}
}
}
if(gasit)break;
}
f=fopen("zone.out","w");
fprintf(f,"%d %d %d %d\n",l1,l2,c1,c2);
fclose(f);
return 0;
}