Pagini recente » Cod sursa (job #2362450) | Cod sursa (job #1495197) | Cod sursa (job #1102899) | Cod sursa (job #3239740) | Cod sursa (job #1361828)
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class CombinationGenerator {
private int size;
private int min;
List<List<Integer>> solutions;
List<Integer> solution;
public CombinationGenerator(int size, int min) {
this.size = size;
this.min = min;
}
public List<List<Integer>> generateCombinations() {
solutions = new ArrayList<List<Integer>>();
solution = new ArrayList<Integer>();
generateCombination(0);
return solutions;
}
private void generateCombination(int k) {
if (k >= min) {
solutions.add(new ArrayList<Integer>(solution));
return;
}
int minI = k > 0 ? 1 + solution.get(k - 1) : 0;
for (int i = minI; i < size; ++i) {
solution.add(i);
generateCombination(k + 1);
solution.remove(solution.size() - 1);
}
}
}
public class Main {
public static void main(String[] args) throws IOException {
InputStream inputStream = new FileInputStream("combinari.in");
Scanner scanner = new Scanner(inputStream);
OutputStream outputStream = new FileOutputStream("combinari.out");
PrintWriter writer = new PrintWriter(outputStream);
int N = scanner.nextInt();
int K = scanner.nextInt();
List<List<Integer>> solutions = new CombinationGenerator(N, K).generateCombinations();
for (List<Integer> solution : solutions) {
for (int i : solution) {
writer.print((1 + i) + " ");
}
writer.println();
}
writer.flush();
writer.close();
outputStream.close();
scanner.close();
inputStream.close();
}
}