Pagini recente » Cod sursa (job #1011567) | Cod sursa (job #1758678) | Cod sursa (job #1713086) | Cod sursa (job #2091874) | Cod sursa (job #20755)
Cod sursa(job #20755)
#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");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;}
}}}}}}}}}}
f=fopen("zone.out","w");
fprintf(f,"%d %d %d %d\n",l1,l2,c1,c2);
fclose(f);
return 0;
}