Um caso em que seu código deu resposta errada para mim foi:
2 3
6 8 10
Mas pode ser que para você ele dê resposta certa. O que ocorre é que, no seu laço principal, você está sempre acessando a posição j+1 do vetor, mas na última iteração do laço (quando j == canos-1) a posição j+1 não foi inicializada. Como você declarou o vetor dentro da função main, ele foi alocado na pilha, ou seja, enquanto não for inicializado, o vetor contém lixo de memória. No exemplo em que citei, se o vetor na posição vet[3] for igual a 0, por exemplo, então daria resposta errada, mas pode ser que ele seja inicializado com o valor 2681351 ou qualquer outro que acabe dando a resposta certa.