/*****************************
 * Practica 7 MP
 * Curso 2008-2009
 *
 * Vicente Lujan Mansilla
 * Lorena Margareto Bisquert
 *****************************/
 
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <time.h>
#include <vector>
#include <math.h>
#include <list>
#include <assert.h>
#include <vector>

#include "Graph.h"
 
using namespace std;

int main()
{	
	int tam;
	int min, max;

	cout << "Introduce el tamanyo del grafo: " << endl;
	cin >> tam;
	
	Graph g(tam);

	/*1. Construir el camino 1-2-3-...-n con los pesos de los arcos valiendo lo mismo 
	     que el nodo del que parten, es decir, el arco 1-2 tendra peso 1.*/
	for(unsigned i=0; i<g.size()-1; i++)
		g(i, i+1) = i;
	
	/*2. Comprobar que el numero de accesos al grafo es correcto y poner a 0 de nuevo el contador.*/
	cout << "Numero de valores de un punto a otro: " << g.size()*g.size() << endl;
	cout << "Numero de accesos (n-1) para construir el camino anterior: "<< g.getAccesos() << endl; 
	cout << "Puesto a 0 el contador." << endl;
	g.accesos = 0;
	
	/*3. Imprimir el grafo.*/
	g.print();
	
	/*4. Comprobar que el numero de accesos al grafo es correcto.*/
	cout << "Numero de accesos al grafo: " << g.getAccesos() << endl;
	
	/*5. Generar un grafo aleatorio no dirigido.*/
	cout << "Introduce un valor minimo: ";
	cin >> min;
	cout << "Introduce un valor maximo: ";
	cin >> max;

	g.grafoAleatND(min, max);
	
	/*6. Imprimir el grafo.*/
	g.print();
	
	return 0;
}










