Submit | All submissions | Best solutions | Back to list |
POUPT07 - Completo? |
Verifique se um dado grafo direcionado e valorado é completo ou não.
Utilize obrigatoriamente a estrutura dinâmica de grafo definida em sala.
Entrada
a primeira linha contem o número de vértices N, seguida de N linhas com N valores que representam os pesos das arestas
sendo -1 a indicação de inexistencia da aresta
Saída
A saída é constituída por uma única linha contendo a palavra sim ou nao seguida do final de linha.
Exemplo de Entrada
5
2 3 0 5 -1
1 3 5 4 0
-1 0 8 2 2
4 1 0 -1 -1
1 -1 9 -1 2
6
2 0 1 2 3 4
1 3 0 1 1 1
1 2 4 0 1 2
1 2 3 5 0 4
1 2 3 4 0 2
1 3 4 0 9 3
3
-1 1 1
1 -1 1
1 1 -1
Exemplo de Saída
nao
sim
sim
#include "lista_dupla.h"
#include <stdlib.h>
struct grafo
{
int nro_vertices;
Listad *vertices;
};
typedef struct grafo Grafo;
struct vertice
{
char nome[10];
int nro_adjacentes;
Listad *adjacencias;
};
typedef struct vertice Vertice;
struct aresta
{
int peso;
Vertice *destino;
};
typedef struct aresta Aresta;
Grafo* cria_grafo(int nro_vertices);
Grafo* cria_grafo(int nro_vertices)
{
Grafo *g = malloc(sizeof(Grafo));
g->nro_vertices = nro_vertices;
g->vertices = cria_listad();
return g;
}
Vertice* localiza_vertice(Grafo *g, char nome[30] )
{
}
void adiciona_vertice(Grafo *g, char nome[30])
{
}
void adiciona_aresta(Grafo *g, char nome_origem[30], char nome_destino[30], int peso)
{
Vertice *origem, *destino;
origem = localiza_vertice(g, origem);
}
Added by: | IFTM_Maratona |
Date: | 2022-11-09 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | C |