Ir ao conteúdo
  • Cadastre-se

the_binarycode

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Será dado a você uma matriz de tamanho NxM, inicialmente contendo o n ́umero 0 em cada uma das posições, e Q operacoes a serem realizadas sobre essa matriz. Cada operacao é composta de 5 numeros inteiros X1, Y1, X2, Y2 e K, onde (X1, Y1) indicam o canto superior esquerdo e (X2, Y2) o canto inferior direito do retangulo definido por esse par de pontos. O ultimo dos 5 inteiros,representado pelo inteiro K, indica a cor que deverá ser usada para pintar o retangulo dado naquela operacao. Sua tarefa é, dadas Q operacoes (Q retangulos), imprimir a matriz resultante depois de todas elas. Entrada: A primeira linha da entrada possui dois inteiros N, M e Q, indicando as dimensoes da matriz e o numero de opera ̧coes. Depois, haverão Q linhas, contendo os 5 inteiros X1, Y1, X2, Y2 e K que representam as bordas do retangulo e a cor com a qual ele deve ser pintado, como indicado acima. Saıda: A saıda deve conter N linhas com M inteiros cada separados por um espaco em branco, representando a matriz apos a realizacao de todas as operacoes Exemplos Entrada 3 3 2 0 0 1 1 4 2 0 2 1 8 Saıda 4 4 0 4 4 0 8 8 0 Entrada 2 3 3 0 0 1 1 6 0 2 0 2 1 1 0 1 1 5 Sa ́ıda 6 6 1 5 5 0 Segue algoritmo que consegui até agora, mas ainda assim, não consigo entender como sobrescrever e pintar a matriz... #include<iostream> using namespace std; #define max 50 int main() { int i, j, a, b, n, m, q; int matriz[max][max]; int x1[max]; int x2[max]; int y1[max]; int y2[max]; int k[max]; //entrada da primeira linha while ((n<1 || n>50) && (m<1 || m>50) && (q<1 || q>50)) { cin>>n>>m>>q; } //zerando matriz for (int i=0; i<n; i++) { for (int j=0; j<m; j++) { matriz [i][j]=0; } } //vetor de cor e de operacao i=0; while (i<q) { x1[i]= -1; x2[i]= n; y1[i]= -1; y2[i]= m; k[i]= 0; } i=0; //recebendo as coordenadas while (i<q) { while ( (x1[i]<0 || x1[i]>x2[i]) && (x2[i]>=n) && (y1[i]<0 || y1[i]>y2[i]) && (y2[i]>=m) && (k[i]<1 || k[i]>9)) { cin>>x1[i]>>y1[i]>>x2[i]>>y2[i]>>k[i]; } i++; } //pintando a paradinha for (int i=0; i<q; i++) { for (int a=x1[i]; a<=x2[i]; a++) { for (int b=x1[i]; b<y2[i]; b++) { matriz[a][b] = k[i]; } } } //imprimindo a matriz for (int i=0; i<n; i++) { for (int j=0; j<m; j++) { if (j== m-1) { cout<< matriz[i][j]<<endl; } else { cout<<matriz[i][j]<<endl; } } } return 0; }

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!