Pagini recente » Cod sursa (job #2645012) | Cod sursa (job #418603) | Cod sursa (job #1902586) | Cod sursa (job #1913356) | Cod sursa (job #574596)
Cod sursa(job #574596)
#include<fstream>
using namespace std;
ifstream f("f.in");
ofstream g("f.out");
int n,s,s1,p,j,i,x[100],v[100];
int succesor (int k)
{if (x[k]<4&&k<=n)
{x[k]++;
return 1;
}
return 0;
}
int valid (int k)
{
return 1;
}
void back()
{int i,k;
k=1;
x[k]=0;
while (k>0)
{i=0;
while (i==0&&succesor(k))
if (valid(k))
i=1;
if (i==0)
k--;
else
if (k==n)
{s=0;
for (i=1;i<=k;i++)
if (x[i]==3||x[k]==4)
{if (i>1)
{if (x[i-1]==1)
s=s-v[i-1];
else
if (x[i-1]==2)
s=s+v[i-1];
p=v[i-1];
}
else
p=1;
j=i;
while ((x[j]==3||x[j]==4)&&j<=k)
{if (x[j]==3)
p=p*v[j];
else
p=p/v[j];
j++;
}
if (i==1)
s=p;
else
if (x[i-1]==2)
s=s-p;
else
s=s+p;
i=j+1;
}
else
if (x[i]==1)
s=s+v[i];
else
s=s-v[i];
if (s==s1)
{for (i=1;i<=k;i++)
{if (x[i]==1)
g<<"+";
if (x[i]==2)
g<<'-';
if (x[i]==3)
g<<'*';
if (x[i]==4)
g<<'/';
}
g<<'\n';
}
}
else
{k++;
x[k]=0;
}
}
}
int main()
{f>>s1>>n;
for (i=1;i<=n;i++)
f>>v[i];
back();
f.close();
g.close();
return 0;
}