320
Cerința
Fie n un număr natural.
Exemplu
plusminus.in
9
plusminus.out
- - + - + - + + - + - - + - - + - + + + - - + + - - + + + + + - + - - +
Explicație
Sunt 4 posibilități:
1) 9 = -12 – 22 + 32 – 42 + 52 – 62 + 72 + 82 – 92
2) 9 = +12 – 22 – 32 + 42 – 52 – 62 + 72 – 82 + 92
3) 9 = +12 + 22 – 32 – 42 + 52 + 62 – 72 – 82 + 92
4) 9 = +12 + 22 + 32 + 42 – 52 + 62 – 72 – 82 + 92
#include <bits/stdc++.h>
using namespace std;
ifstream cin("plusminus.in");
ofstream cout("plusminus.out");
int n , x[25] , ok;
void afisare()
{
for(int i = 1 ; i <= n ; i++)
if(x[i] == -1) cout << "- ";
else cout << "+ ";
cout << '\n';
ok++;
}
void back(int k , int sp)
{
for(int i = -1; i <= 1; i += 2)
{
x[k] = i;
sp = sp + i * k * k;
if(k == n)
{
if(sp == n) afisare();
}
else back(k + 1 , sp);
sp = sp - i * k * k;
}
}
int main()
{
cin >> n;
back(1 , 0);
if(!ok) cout << "IMPOSIBIL";
}
Comentarii