Buongiorno a tutti. devo creare un programma che unisca due k-quadrati latini, mi spiego meglio. un k-quadrato latini di ordine n è una matrice n*n in cui in ogni cella vi sono esattamente k elementi e tale che, in ogni rico ed ogni colonna ogni elemento compaia esattamente k volte. Nel mio programma devo far inserire due k-quadrati latini con k diverso, verificare che effettivamente siano dei k quadrati latini e poi unirli, ovvero creare una matrice n*n in cui in ogni cella trovo l'unione degli elementi prensenti nelle celle corrispondenti dei quadrati inseriti come input.
Avevo pensato di creare una matrice i cui elementi sono vettori o multinsiemi. è possibile fare una cosa del genere? avevo abbozzato questo sino ad ora:
codice:
#include <stdio.h>
#include <math.h>
#include "boost/multi_array.hpp"
#include <iostream>
#include "boost/array.hpp"
typedef boost::multi_array<double, 2> two_d_array_type;
int main()
{
    int k,n,i,j;
    printf("Inserisci l'indice'");
    scanf("%d",&k);
    printf("Inserisci l'ordine''");
    scanf("%d",&n);
    two_d_array_type A(boost::extents[n][n]);
    for (i=0; i<n; i++){
        for (j=0; j<n; j++){
            printf( "Inserisci l'elemento di posto' Element[%d][%d]: ", i, j);
            scanf("%d",&A[i][j]);
        }
    }
    for (i=0;i<n;i++){
        for(j=0;j<n;j++)
        {
        printf("%d ", A[i][j]);
        }
        printf("\n");
    }
    
 
 
    return(0);
}