Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: main.c
- * Author: pmargreff
- * link: https://www.urionlinejudge.com.br/judge/pt/problems/view/1069
- * Created on 1 de Janeiro de 2015, 22:29
- */
- #include <stdio.h>
- #include <stdlib.h>
- void limparBuffer(void);
- void ler(char vetor[]);
- int contador(char vetor[]);
- int main(int argc, char** argv) {
- int casos; // número de casos de teste
- int n;
- int diamantes; // aponta para número de diamantes
- char vetor[1000]; //variável para armazenar a entrada
- scanf("%d", &casos);
- for (n = 0; n < casos; n++) {
- limparBuffer();
- ler(vetor);
- diamantes = contador(vetor);
- printf("%d\n", diamantes);
- }
- return (EXIT_SUCCESS);
- }
- //limpa o buffer consumindo todos caracteres até encontrar \n ou EOF
- void limparBuffer(void) {
- char c;
- while ((c = getchar()) != '\n' && c != EOF);
- }
- //le com scanf até \n ou os 1000 primeiros caracteres0
- void ler(char vetor[]) {
- scanf("%1000[^\n]s", vetor);
- }
- /*
- * percorre todo o vetor, se encontrar a parte esquerda de um diamante
- * percorre o mesmo vetor em outro laço procurando uma parte direita
- * do diamante para se completar, quando encontra incrementa o contador
- * e substitui o '>' por um ponto, para não completar o mesmo diamante
- * com mais de uma parte direita
- */
- int contador(char vetor[]) {
- int i, j, cont = 0;
- for (i = 0; vetor[i] != '\0'; i++) {
- if (vetor[i] == '<') {
- for (j = i; vetor[j] != '>' && vetor[j] != '\0'; j++) {
- }
- if (vetor[j] == '>') {
- cont++;
- vetor[j] = '.';
- }
- }
- }
- return cont;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement