Pagini recente » Cod sursa (job #3352853) | Cod sursa (job #763858) | Cod sursa (job #3352453) | Cod sursa (job #3355253)
import java.io.*;
import java.util.StringTokenizer;
public class Main {
static int[] sol;
static int n;
// static int k;
// Declarăm PrintWriter global pentru a-l putea accesa din funcția back
static PrintWriter out;
public static void main(String args[]) throws Exception {
// Inițializăm citirea din și scrierea în fișiere
MyScanner s = new MyScanner("combinari.in");
out = new PrintWriter(new BufferedWriter(new FileWriter("combinari.out")));
n = s.nextInt();
// k = s.nextInt();
sol = new int[n + 1];
// for (int k = 1; k <= n; k++) {
// back(1,k);
// }
back(1);
// FOARTE IMPORTANT: Trebuie să închidem fișierul la final pentru a salva datele scrise!
out.close();
}
static void back(int pas) {
if (pas > 1) {
for (int j = 1; j < pas; j++) {
out.print(sol[j] + " ");
}
out.println();
}
// Generăm permutările
for (int i = sol[pas - 1] + 1; i <= n; i++) {
sol[pas] = i;
back(pas + 1);
}
}
}
// Clasa MyScanner adaptată pentru a citi din fișier în loc de System.in
class MyScanner {
BufferedReader br;
StringTokenizer st;
public MyScanner(String fileName) throws FileNotFoundException {
br = new BufferedReader(new FileReader(fileName));
}
String next() {
while (st == null || !st.hasMoreElements()) {
try {
String line = br.readLine();
if (line == null) return null;
st = new StringTokenizer(line);
} catch (IOException e) {
e.printStackTrace();
}
}
return st.nextToken();
}
int nextInt() {
return Integer.parseInt(next());
}
long nextLong() {
return Long.parseLong(next());
}
double nextDouble() {
return Double.parseDouble(next());
}
String nextLine() {
String str = "";
try {
str = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
}