Pagini recente » Cod sursa (job #270598) | Cod sursa (job #1936237) | Cod sursa (job #1050043) | Cod sursa (job #716343) | Cod sursa (job #1124783)
#include <fstream>
using namespace std;
ifstream fin("linie.in");
ofstream fout("linie.out");
int n, S, a[15][15], s1, s2, v[15], V[15], minim = 9999999;
void gard(int k);
void verificare();
int main()
{
int i, j;
fin >> n;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
fin >> a[i][j];
S+=a[i][j];
}
gard(1);
fout << s1 << '\n' << s2 << '\n';
for (i=1;i<=n;i++)
fout << V[i] << ' ';
fout << '\n';
return 0;
}
void gard(int k)
{
int i;
if (k == n+1)
verificare();
else
{
if (k == 1)
for (i=1;i<n;i++)
{
v[k] = i;
gard(k+1);
}
else
{
if (v[k-1] > 1)
{
v[k] = v[k-1]-1;
gard(k+1);
}
v[k] = v[k-1];
gard(k+1);
v[k] = v[k-1]+1;
gard(k+1);
}
}
}
void verificare()
{
int i, j, sum = 0, nr = 0;
for (i=1;i<=n;i++)
for (j=1;j<=v[i];j++)
sum+=a[i][j];
if (2*sum < S)
nr = S-sum-sum;
else
nr = sum+sum-S;
if (nr < minim)
{
minim = nr;
s1 = sum;
s2 = S-sum;
for (i=1;i<=n;i++)
V[i] = v[i];
}
}