Sie sind auf Seite 1von 2

#include <fstream>

#include <string.h>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int s,a[100],n;
int st[20],k; //back
void init (int k)
{
st[k]=0;
}
int succesor (int k)
{
if (st[k]<n)
{
st[k]++;
return 1;
}
return 0;
}
int valid (int k)
{
for (int i=1;i<k;i++)
if (st[i]==st[k]) return 0;
return 1;
}
int solutie (int k)
{
return k==n;
}
void tipar (int k)
{
int i, j, h1=s, h2=0;
for (i=1;i<=n && h2<h1;i++)
{
h1-=a[st[i]];
h2+=a[st[i]];
}
//g<<h1<<" "<<h2<<"\n";
if (h1==h2)
{
g<<"Primul hot: ";
for (j=1;j<i;j++) g<<a[st[j]]<<" ";
g<<"\nAl doilea hot: ";
for (j=i;j<=n;j++) g<<a[st[j]]<<" ";

g<<"\n\n";
}
}
void back (int k)
{
init (k);
while (succesor(k))
if (valid(k))
if (solutie(k))
tipar(k);
else back (k+1);
}
int main ()
{
int i;
f>>n;
for (i=1;i<=n;i++)
{
f>>a[i];
s+=a[i];
}
back (1);
}

Das könnte Ihnen auch gefallen