Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <cmath>
- #include <iostream>
- #include <vector>
- #include <queue>
- #include <algorithm>
- #include <climits>
- using namespace std;
- vector <int> tmp(80);
- int res;
- void rec(int n, int k, int pos)
- {
- if(n < 0) return;
- if(!n)
- {
- int i;
- for(i = pos - 1; i > 0; i--) if(tmp[i - 1] - tmp[i] < 2) return;
- printf("%d=", res);
- for(i = pos - 1; i > 0; i--) printf("%d+", tmp[i]);
- printf("%d\n", tmp[0]);
- }
- else
- {
- if(n - k >= 0)
- {
- tmp[pos] = k;
- rec(n - k, k, pos + 1);
- }
- if(k - 1 > 0) rec(n, k - 1, pos);
- }
- }
- int main()
- {
- scanf("%d", &res);
- rec(res, res, 0);
- //system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement