示例#1
0
void loop() {
  int op = random(1,5);
  piscaMaluco(20,20);

  switch(op) {  
  case 1:
    piscaMaluco(random(50,100),random(20,50));        
    break;
  case 2:
    ligaG();
    break;
  case 3:
    desligaG();
    break;
  case 4:
    liga();
    break;
  case 5:
    comLDR();
    break;
  case 6:
    piscaMaluco(random(10,100), random(10,100));
    break;
  }

}
int main()
{
	int v, e, l, x, y, i, z, p;
	int conectado;

	for (z = 1;; z++)
	{
		//Preenche
		memset(grafo, -1, sizeof(grafo));

		scanf("%d %d", &e, &l);
		if (e == 0 && l == 0) break;
		else
		{
			for (i = 0; i < l; i++)
			{
				scanf("%d %d %d", &x, &y, &p);
				if (p == 1) liga(x, y);
				else
				{
					liga(x, y);
					liga(y, x);
				}
			}
			conectado = 1;
			for(i = 0; i < e; i++)
			{
				memset(visitados, -1, sizeof(visitados));
				memset(pilha, -1, sizeof(pilha));
				dfs(i, e);//preenche com 1 todos os vértices visitáveis a partir de i
				for (v = 0; v < e; v++)//percorre todos os visitados
				{
					if (visitados[v] == -1)//verifica se teve algum que não foi visitado a partir de i
					{
						conectado = 0;
						break;
					}
				}
				if (conectado == 0) break;
			}

		}
		printf("%d\n", conectado);
	}

	return 0;
}