Cod sursa(job #1307620)

Utilizator robert_fanrRobert Banu robert_fanr Data 2 ianuarie 2015 16:57:56
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std;
ifstream in("hanoi.in");
ofstream out("hanoi.out");

int discuri, tija[4][21], vf[4];

void initializare() {
    int i;
    for (i=1; i<=discuri; i++) {
        tija[1][i] = discuri-i+1;
        vf[1]++;
    }
}

void hanoi(int n, int sursa, int dest, int aux) {
    if (n==1) {
        out <<tija[sursa][vf[sursa]] <<" " <<sursa <<" " <<dest <<"\n";
        tija[dest][++vf[dest]] = tija[sursa][vf[sursa]--];
    }
    else {
        hanoi(n-1, sursa, aux, dest);
        hanoi(1, sursa, dest, aux);
        hanoi(n-1, aux, dest, sursa);
    }
}

int main()
{
    in >> discuri;
    initializare();
    hanoi(discuri,1,2,3);
    return 0;
}