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;
}