#include <iostream>
#include <fstream>
#include <stdlib.h>

#include "F8probleme.h"

using namespace std;

int main()
{

    string fichier;
    cout << "Tapez le nom du fichier (sans l'extension) contenant le graphe: ";
    cin >> fichier;
    fichier ="F8" + fichier + ".txt";
    ifstream sourceProb(fichier.c_str());
    cout << endl;

    if(sourceProb)
    {
        probleme newProb; // Création d'un objet probleme
        int i, j;

        sourceProb >> newProb.nbr_var; // Stockage du nombre de variables
        newProb.tab_var = new variable[newProb.nbr_var];
        sourceProb >> newProb.dimension;

        for(i=0; i<newProb.dimension; i++) // lecture des tailles des dimensions
        {
            sourceProb >> j;
            newProb.tailles_dim.push_back(j);
        }

        int var_actuelle;

        for (i=0; i<newProb.nbr_var; i++) // lecture des valeurs possibles pour chaque variable
        {
            sourceProb >> j;
            var_actuelle = j;
            sourceProb >> j;
            while(j != -1)
            {
                newProb.tab_var[var_actuelle].valeurs_possibles.push_back(j);
                sourceProb >> j;
            }
        }

        sourceProb >> j;
        int prec;
        bool first= true;

while (j != -2) // Tant que le fichier n'est pas terminé
{

    if (j==2) // Si la contrainte est de type différent
    {
        do{
            sourceProb>>j;
            if (first)
            {
                // On récupère la valeur de la première variable
                prec=j; // on la stocke
                first=false;
                sourceProb>>j;
            }
            if (j!=-1){
             // on récupère la seconde
            cout << j << " est different de" << prec<<endl;
            newProb.tab_var[prec].isDifferent.push_back(j); // on ajoute la contrainte
            prec=j;
            }
        } while (j != -1);
        first=true;
    }
    sourceProb>>j;
}





    }
    else cout << "Impossible d'ouvrir ce fichier !";


    return 0;
}
