Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Yo que se
#include <bits/stdc++.h> #define MAXTAM 1000000 using namespace std; vector<int> criba(MAXTAM,0); int main() { int P, n, a0, a1, dato, contador, siguiente, primero, tamano, K, ultimo; vector <int> listado; int op; map <pair<int, int>, int> lista; pair<int, int> seleccion = make_pair(0,0); criba[0] = 0; criba[1] = 1; for(int i = 2; i < MAXTAM; i++) { if(criba[i]==0) { criba[i] = i; for(int j = i; j < MAXTAM/i; j++) if(criba[i*j] == 0) criba[i*j] = i*j/i; } } cin >> P; while(P--) { listado.clear(); lista.clear(); seleccion = make_pair(-1,-1); cin >> K; cin >> n; cin >> a0; cin >> a1; listado.push_back(a0); listado.push_back(a1); lista[make_pair(a0,a1)] = 0; lista[make_pair(a1,criba[a0+a1])] = 1; for(int i = 2; i < n; i++) { dato = criba[listado[i-1]+listado[i-2]]; //cout << dato << " "; if(lista.find(make_pair(dato,criba[dato+listado[i-1]])) == lista.end() or i == n-1) { lista[make_pair(dato,criba[dato+listado[i-1]])] = i; listado.push_back(dato); } else { seleccion = make_pair(dato,criba[dato+listado[i-1]]); contador = i; break; } } //cout << "\n"; if(seleccion == make_pair(-1,-1)) { cout << K << " " << n << " 0\n"; cout << criba[listado[n-1]+listado[n-2]] <<"\n"; } else if( criba[a0+a1] == a0 ) { tamano = contador - lista[seleccion]; cout << K << " " << contador << " " << tamano << "\n"; for(int i = 0 ; i < tamano ; i++) cout << listado[i + lista[seleccion]] << " "; cout << seleccion.first << " " << seleccion.second << "\n"; } else { tamano = contador - lista[seleccion]; cout << K << " " << contador+1 << " " << tamano << "\n"; for(int i = 0 ; i < tamano ; i++) cout << listado[i + lista[seleccion]] << " "; cout << seleccion.first << " " << seleccion.second << "\n"; } } }
run
|
edit
|
history
|
help
0
How to get base class
Hash(Prototipo)
ssss
MoveBubble
Palindromo
FindMissingLagrange
Top view of a Binary tree
decode
figa gratis
newwork