// dag-skierowany-graf-acykliczny.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu. // #include <iostream> constexpr int MAXN = 46; //constexpr int MAXN = 5; constexpr int MAXV = 107; constexpr int ANSW = 2 * MAXN + 5; int t[MAXN + 1]; int edges[MAXV][2]; inline int l(int x) { if (x == 0) return -1; return x; } int main() { t[1] = t[2] = 1; for (size_t i = 3; i <= MAXN; i++) { t[i] = t[i - 1] + t[i - 2]; //std::cout << t[i] << '\n'; } for (size_t i = 1; i <= 2*MAXN; i+=2) { edges[i][0] = i + 1; edges[i + 1][0] = i + 2; edges[i + 1][1] = i + 4; } int n; std::cin >> n; for (size_t i = MAXN; i > 0; i--) { if (n >= t[i]) { n -= t[i]; edges[2*i-1][1] = ANSW; } } std::cout << ANSW << '\n'; for (size_t i = 1; i <= ANSW; i++) { std::cout << l(edges[i][0]) << ' ' << l(edges[i][1]) << '\n'; } } // Uruchomienie programu: Ctrl + F5 lub menu Debugowanie > Uruchom bez debugowania // Debugowanie programu: F5 lub menu Debugowanie > Rozpocznij debugowanie // Porady dotyczące rozpoczynania pracy: // 1. Użyj okna Eksploratora rozwiązań, aby dodać pliki i zarządzać nimi // 2. Użyj okna programu Team Explorer, aby nawiązać połączenie z kontrolą źródła // 3. Użyj okna Dane wyjściowe, aby sprawdzić dane wyjściowe kompilacji i inne komunikaty // 4. Użyj okna Lista błędów, aby zobaczyć błędy // 5. Wybierz pozycję Projekt > Dodaj nowy element, aby utworzyć nowe pliki kodu, lub wybierz pozycję Projekt > Dodaj istniejący element, aby dodać istniejące pliku kodu do projektu // 6. Aby w przyszłości ponownie otworzyć ten projekt, przejdź do pozycji Plik > Otwórz > Projekt i wybierz plik sln
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | // dag-skierowany-graf-acykliczny.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu. // #include <iostream> constexpr int MAXN = 46; //constexpr int MAXN = 5; constexpr int MAXV = 107; constexpr int ANSW = 2 * MAXN + 5; int t[MAXN + 1]; int edges[MAXV][2]; inline int l(int x) { if (x == 0) return -1; return x; } int main() { t[1] = t[2] = 1; for (size_t i = 3; i <= MAXN; i++) { t[i] = t[i - 1] + t[i - 2]; //std::cout << t[i] << '\n'; } for (size_t i = 1; i <= 2*MAXN; i+=2) { edges[i][0] = i + 1; edges[i + 1][0] = i + 2; edges[i + 1][1] = i + 4; } int n; std::cin >> n; for (size_t i = MAXN; i > 0; i--) { if (n >= t[i]) { n -= t[i]; edges[2*i-1][1] = ANSW; } } std::cout << ANSW << '\n'; for (size_t i = 1; i <= ANSW; i++) { std::cout << l(edges[i][0]) << ' ' << l(edges[i][1]) << '\n'; } } // Uruchomienie programu: Ctrl + F5 lub menu Debugowanie > Uruchom bez debugowania // Debugowanie programu: F5 lub menu Debugowanie > Rozpocznij debugowanie // Porady dotyczące rozpoczynania pracy: // 1. Użyj okna Eksploratora rozwiązań, aby dodać pliki i zarządzać nimi // 2. Użyj okna programu Team Explorer, aby nawiązać połączenie z kontrolą źródła // 3. Użyj okna Dane wyjściowe, aby sprawdzić dane wyjściowe kompilacji i inne komunikaty // 4. Użyj okna Lista błędów, aby zobaczyć błędy // 5. Wybierz pozycję Projekt > Dodaj nowy element, aby utworzyć nowe pliki kodu, lub wybierz pozycję Projekt > Dodaj istniejący element, aby dodać istniejące pliku kodu do projektu // 6. Aby w przyszłości ponownie otworzyć ten projekt, przejdź do pozycji Plik > Otwórz > Projekt i wybierz plik sln |