Correttore online – Intermedi
Siano date due sequenze così definite
- a1=2, a2=3, a3=4, a4=7, e (per n > 4) an=bn-1+bn-3
- bn è una sequenza crescente di numeri non presenti in an.
Così, i numeri della successione an sono 2, 3, 4, 7, 13, 15, … e i numeri della successione bn sono 1, 5, 6, 8, 9, 10, …
Dato un intero n, scrivete un programma per calcolare an e bn.Dati di input
Il file di input contiene il numero intero n (0 < n < 10001).
Dati di output
La prima riga del file di output deve contenere an, la seconda bn.
Esempi di input/output
input.txt output.txt 4
7
810
25
16Autore/i: A.S. Stankevich, ACM ICPC Team St. Petersburg State University of Information technology, Mechanics and Optics.
/* Autore: Matteo Zappia Correttore online - Intermedi - Due sequenze */ #include#include #include #define NMAX 10000 using namespace std; int main() { ifstream fin ( "input.txt"); ofstream fout("output.txt"); int N; long a[NMAX+1]; vector b; fin >> N; a[0]=0; // elemento di indice 0... a[1]=2; a[2]=3; a[3]=4; a[4]=7; a[5]=13; b.push_back(0); // elemento di indice 0... for(int i=1; i < 6; i++) for(int j=a[i-1]+1; j < a[i]; j++) b.push_back(j); for(int i=6; i <= N; i++) { a[i]=b[i-1]+b[i-3]; for(int j=a[i-1]+1; j < a[i]; j++) b.push_back(j); } fout << a[N] << endl << b[N]; return 0; }