Cod sursa(job #2357480)
Utilizator | Data | 27 februarie 2019 14:23:05 | |
---|---|---|---|
Problema | Zone | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 2.98 kb |
#include <fstream>
using namespace std;
ifstream fin("zone.in");
ofstream fout("zone.out");
int a[515][515];
int s[10];
bool viz[10];
int x;
int cautbin(, int val)
{
int st=
}
int main()
{
fin>>n;
for(int i=1;i<=9;i++)
fin>>s[i];
sort(s+1,s+10);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
fin>>x;
a[i][j]=x+a[i-1][j]+a[i][j-1]-a[i-1][j-1];
}
for(int l1=1;l1<=n-2;l1++)
for(int s1=1;s1<=9;s1++)
if(!viz[s1])
{
int c1=cautbin(1,n-2,v[s1]);
viz[s1]=1;
for(int s2=1;s2<=9;s2++)
if(!viz[s2])
{
int c2=cautbin(c1+1,n-1,v[s2]);
if(c2!=-1)
{
viz[s2]=1;
int sum3=a[l1][n]+a[0][c2-1]-a[l1][c2-1]-a[0][n];
for(int s3=1;s3<=9;s3++)
{
if(!viz[s3]&&s[s3]==sum3)
{
viz[s3]=1;
for(int s4=1;s4<=9;s4++)
if(!viz[s4])
{
int l2=cautbin(l1+1,n-1,v[s4]);
if(l2!=-1)
{
viz[s4]=1;
int sum5=a[l2][c2]+a[l1-1][c1-1]-a[l2][c1-1]-a[l1-1][c2];
for(int s5=1;s5<=9;s5++)
{
if(!viz[s5]&&s[s5]==sum5)
{
viz[s5]=1;
int sum6=a[l2][n]+a[l1-1][c2-1]-a[l2][c2-1]-a[l2-1][n];
for(int s6=1;s6<=9;s6++)
{
if(!viz[s6]&&s[s6]==sum6)
{
viz[s6]=1;
int sum7=342
}
}
}
}
}
}
}
}
}
}
}
return 0;
}