-   
- #include <iostream> 
- using namespace std; 
-   
-   
- void formarTabla(int tabla[][100], const int &primero, const int &ultimo); 
- void completarTabla(int tabla, int eqInf, int eqSup, int diaInf, int diaSup, int eqInic); 
-   
- main (){ 
-   
-    int ultimo=0, medio=0; 
-   
-     do{ 
-         cout<<"Introduzca el numero de jugadores"<<endl; 
-         cin>>ultimo; 
-          
-         if (ultimo<=1) 
-             cout<< "ERROR!! El número de jugadores debe ser mayor que 1"<<endl; 
-          
-     }while (ultimo<=1); 
-   
-     //dias=ultimo-1; fila=ultimo+1; colum=ultimo              
-       
-                 //Declaracion de la tabla 
-                 int tabla[ultimo+1][ultimo]; 
-                  
-                 //Dias 
-                 for (int i=0; i<=ultimo-1; i++) 
-                     tabla[0][i]=i;            
-                      
-                 //Jugadores 
-                 for (int j=1; j<=ultimo; j++) 
-                     tabla[j][0]=j;      
-                      
-                 //Inicializa la tabla a 0 para evitar errores 
-                 for (int f=1; f<ultimo+1; f++) 
-                     for (int c=1; c<ultimo; c++){ 
-                         tabla[f][c]=0; 
-                         tabla[f][c]=0; 
-                     } 
-                      
-   
-                          
-                 formarTabla(tabla,1,ultimo); 
-                  
-                  
-                 cout<<endl<<"      Jugador t t Dia"<<endl<<endl;  
-              
-                 //mostrar la tabla 
-                 for (int f1=0; f1<ultimo+1; f1++){ 
-                     for (int c1=0; c1<ultimo; c1++) 
-                         cout<<"t "<<tabla[f1][c1]; 
-                     cout<<endl<<endl; 
-                 } 
-                      
-      
-   
-   
- cout<<ultimo<<endl; 
-   
- system ("pause"); 
- } 
-   
-   
-   
- void formarTabla(int tabla[][100], const int &primero, const int & ultimo){ 
-      
-     if (ultimo - primero ==1){ //caso base 
-         cout<<"caso base"<<endl; 
-                     
-         tabla[primero][1]= ultimo; 
-         tabla[ultimo][1]= primero; 
-     } 
-     else {      //caso recursivo 
-                  
-         cout<<"caso recursivo"<<endl; 
-         int medio=(primero+ultimo)/2; 
-                      
-         /*primera subsolución: participantes de 1 a 2k-1*/                                                  
-         formarTabla(tabla,primero,medio);  
-         /*segunda subsolución: participantes de 2k-1+1 a 2k*/                                       
-         formarTabla(tabla,medio+1,ultimo);  
-                    
-         /*completa la tabla de los participantes de la primera subsolución con los de la segunda*/ 
-         completarTabla(tabla, primero, medio, medio, ultimo-1, medio+1);  
-         /*completa la tabla de los participantes de la segunda subsolución con los de la primera*/  
-         completarTabla(tabla, medio+1, ultimo, medio, ultimo-1, primero);  
-     } 
-      
- } 
-   
- void CompletarTabla(int tabla, int eqInf, int eqSup, int diaInf, int diaSup, int eqInic){ 
-      
-     for (int j=diaInf;  j <= diaSup; j++) 
-       tabla[eqInf][j]= (eqInic + j - diaInf); 
-   
-   
-     for (int i = eqInf + 1; i <= eqSup; i++) { 
-       /*Intercambio de contrincante*/ 
-       tabla[i][diaInf] = tabla[i-1][diaSup]; //el último contrincante de i-1 es ahora el primer contrincante de i 
-       for (int j = diaInf + 1;  j <= diaSup; j++) 
-          /*rotación de los contrincantes*/ 
-          tabla[i][j] = tabla[i-1][j-1]; //el contrincante de ayer de i-1, es el contrincante de hoy para i 
-        
-     } 
- } 
-