- #include <iostream>
- #include <string>
- #include <cstring>
- #include <string.h>
- #include <cstdio>
- #include <stdio.h>
- #include <stdlib.h>
- #include <cstdlib>
- #include <algorithm>
- #include <math.h>
- using namespace std;
- int matriz[101][102][2];
- bool marcados[101];
- int pilha[101];
- int posPilha, elemento;
- busca(){
- elemento = pilha[posPilha-1];
- int proximo;
- while(matriz[elemento][0][0] < matriz[elemento][100][0]){
- proximo = matriz[elemento ][ matriz[elemento][0][0]++ ][0] ;
- if( !marcados[ proximo ] ){
- pilha[posPilha++] = proximo;
- busca();
- }else{
- int j = 0;
- while(pilha[j] != proximo){
- j++;
- }
- if( (posPilha - j)%2 != 0 ){
- int contador = 0;
- for(;j<posPilha;j++){
- contador+= matriz[][][]
- }
- }
- }
- }
- }
- int main(){
- freopen("in.txt", "r", stdin);
- int i, j, temp , quantidade, casos, pontos, ruas, a, b, c;
- scanf("%d", casos);
- while(casos--){
- scanf("%d%d", &pontos, &ruas);
- temp = ruas;
- for(i=1;i<=pontos;i++){
- matriz[i][0][0] = 1; //pos atual
- matriz[i][100][0] = 1; //pos livre;
- marcados[i] = false;
- }
- while(temp--){
- scanf("%d%d%d", &a, &b, &c);
- matriz[a][matriz[a][100][0]++][0] = b ;
- matriz[a][ matriz[a][100][0] ][1] = c ;
- matriz[b][matriz[b][100][0]++][0] = a ;
- matriz[b][ matriz[b][100][0] ][1] = c ;
- }
- for(i=1;i<pontos;i++){
- if(!marcados[i]){
- posPilha = 0;
- pilha[posPilha++] = i;
- busca();
- }
- }
- }
- return 0;
- }
Raw Paste