Ir ao conteúdo
  • Cadastre-se

jonas nasc

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Tudo que jonas nasc postou

  1. #include <stdio.h> #include <string.h> #define MAXN 100 #define MAXM 100 int N, M, K, T; char tabuleiro[MAXN][MAXM+1]; int navio[MAXN][MAXM]; int tamanho[MAXN*MAXM]; int dx[] = {1, 0, -1, 0}; int dy[] = {0, 1, 0, -1}; int marca_navio(int i, int j, int id) { int ret = 1; navio[i][j] = id; for(int d = 0; d < 4; ++d) { int i2 = i + dy[d]; int j2 = j + dx[d]; if(i2 < 0 or j2 < 0 or i2 >= N or j2 >= M) { continue; } if(tabuleiro[i2][j2] == '#' and navio[i2][j2] == -1) { ret += marca_navio(i2, j2, id); } } return ret; } int main(void) { scanf("%d%d", &N, &M); for(int i = 0; i < N; ++i) { scanf("%s", tabuleiro[i]); for(int j = 0; j < M; ++j) { navio[i][j] = -1; } } K = 0; for(int i = 0; i < N; ++i) { for(int j = 0; j < M; ++j) { if(navio[i][j] == -1 and tabuleiro[i][j] == '#') { tamanho[K] = marca_navio(i, j, K); K++; } } } int destruidos = 0; scanf("%d", &T); for(int k = 0; k < T; ++k) { int i, j; scanf("%d%d", &i, &j); i--; j--; if(navio[i][j] != -1) { tamanho[navio[i][j]] --; if(tamanho[navio[i][j]] == 0) { destruidos ++; } navio[i][j] = -1; } } printf("%d\n", destruidos); return 0; } tenho que converter esse código de c++ para c se alguem puder ajudar.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!