Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <time.h>
- using namespace std;
- typedef long long LL;
- const LL inf = 4*(1e9) + 10;
- const int dx[] = {0, 0, -1, 1};
- const int dy[] = {1, -1, 0, 0};
- const int MOD = 1000000007;
- const int NMAX = 100005;
- vector<int> G[NMAX];
- bool viz[NMAX];
- /*
- void bfs(int v){
- queue<int> Q;
- memset(viz, 0, sizeof(viz));
- Q.push(v);
- viz[v] = 1;
- while(!Q.empty()){
- int cur = Q.top();
- for(auto el: G[cur]){
- if(!viz[el]){
- viz[el] = 1;
- Q.insert(el);
- }
- }
- }
- }
- */
- void check(vector<int> set){
- // Computations
- for(auto el: set){
- cout<<el<<" ";
- }
- cout<<"\n";
- }
- void subsets(int n){
- vector<int> curr;
- for(int i=0; i<(1<<n); ++i){
- curr.clear();
- for(int j=0; j<n; ++j){
- if(i & (1<<j)){
- curr.push_back(j);
- }
- }
- check(curr);
- }
- }
- void perms(int n){
- vector<int> perm;
- for(auto i=0; i<n; ++i){
- perm.push_back(i);
- }
- do{
- check(perm);
- }while(next_permutation(perm.begin(), perm.end()));
- }
- vector<int> prms;
- int np[NMAX];
- void sieve(){
- for(int i=2; i<=NMAX-1; ++i){
- if(!np[i]){
- prms.push_back(i);
- for(int j=2*i; j<=NMAX-1; j+=i){
- np[j] = 1;
- }
- }
- }
- }
- int x, n;
- int dp[1555][50];
- int main(){
- cin>>n;
- vector<int> pws;
- int c = 1;
- int i = 1;
- while(c <= 1000){
- pws.push_back(c);
- i++;
- c = 1;
- for(int j=1; j<=n && c < 1005; ++j){
- c = c*i;
- }
- }
- for(auto el: pws){
- //cout<<el<<"\n";
- }
- for(int i=0; i<=pws.size(); ++i){
- dp[0][i] = 1;
- }
- for(int i=1; i<=x; ++i){
- for(int j=1; j<=pws.size(); ++j){
- if(i - pws[j-1] >= 0){
- cout<<i<< " " <<i - pws[j-1]<<"\n";
- dp[i][j] += dp[i - pws[j-1]][j];
- }
- }
- }
- cout<<dp[x][pws.size()];
- /*
- for(int i=1; i<=m; ++i){
- cin>>a>>b;
- G[a].push_back(b);
- G[b].push_back(a);
- }
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement