import java.util.*;
import java.lang.*;
import java.io.*;

class Main {
    static int N;
    static int K;
    static int[] nums;
    static boolean[] visited;
    static StringBuilder sb = new StringBuilder();
    static boolean flag;
    
    public static void dfs(int i) {
        if(i==N) {
            int value = 0;
            for (int j=1; j<=N; j++) {
                value += nums[j-1]*j;
            }
            if(value > K) {
                flag = true;
            }
            if (value == K) {
                for (int l=1; l<=N; l++) {
                    sb.append(nums[l-1]);
                    if(l!=N) {
                        sb.append(" ");
                    }
                }
                sb.append("\n");
            }
            return;
        }

        flag = false;
        for (int x = 0; x<=K; x++) {
            if(flag) {
                break;
            }
            nums[i] = x;
            visited[i] = true;
            dfs(i+1);
            visited[i] = false;
        }
    }

    
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        K = Integer.parseInt(st.nextToken());
        nums = new int[N+1];
        visited = new boolean[N+1];

        dfs(0);

        System.out.println(sb);

        
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: