Cerința
Se consideră o încăpere de lungime m
și lățime n
împărțită în n*m
zone pătrate, sub forma unei matrice cu n
linii și m
coloane. Încăperea este acoperită în totalitate cu p
covoare de diferite dimensiuni și culori astfel încât acestea nu se suprapun și încăperea este acoperită în totalitate. Mai mult fiecare zonă pătrată a încăperii este acoperită cu un singur covor.
Gigel, administratorul clădirii, este responsabil cu spălarea covoarelor. Astfel el a notat, în ordine, dimensiunile și culoarea fiecărui covor, în ordine, de sus în jos și de la stânga la dreapta. Covoarele au fost scoase și spălate, dar acum Gigel vă cere ajutorul.
Cunoscând dimensiunile încăperii, numărul de covoare precum și dimensiunile și culoarea fiecărui covor, să se refacă așezarea inițială a acestora.
Date de intrare
Fișierul de intrare covoare.in
conține pe prima linie numerele n m p
, iar pe a următoarele p
linii câte trei numere a b c
reprezentând lungimea, lățimea și culoarea fiecărui covor.
Date de ieșire
Fișierul de ieșire covoare.out
va conține o matrice A
cu n
linii și m
coloane, A[i][j]
reprezentând culoarea covorului care acoperă zona i j
. Fiecare linie a matricei va fi scrisă pe o linie a fișierului, elementele unei linii fiind separate prin exact un spațiu.
Restricții și precizări
1 ≤ n, m ≤ 100
- covoarele trebuie așezate în ordinea dată, și nu pot fi rotite
- culoarea unui covor este un număr natural nenul
Exemplu
covoare.in
5 6 8 3 2 2 1 1 1 2 3 2 1 1 4 4 2 3 2 2 1 2 1 1 2 1 3
covoare.out
2 2 2 1 2 2 2 2 2 4 2 2 3 3 3 3 2 2 3 3 3 3 1 1 1 1 3 3 1 1
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Covoare:
//problema covoare
/*
* Completam o matrice corespunzator, in ordinea data
*
* */
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("covoare.in");
ofstream fout("covoare.out");
int A[101][101], n, m , p , a , b , c;
int main(){
fin >> n >> m >> p;
for(int i =1 ; i <= n ; ++i)
for(int j = 1 ; j <= m ; ++j)
if(A[i][j] == 0)
{
fin >> a >> b >> c;
for(int k = 0 ; k < b ; k ++)
for(int l = 0 ; l < a ; ++l)
{
if(i+k>n || j+l>m)
cout << "ies din matrice
";
A[i + k][j + l] = c;
}
}
for (int i = 1 ;i <= n ; ++i)
{
for(int j = 1 ; j <= m ; ++j)
fout << A[i][j] << " ";
fout << endl;
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #599 Covoare
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #599 Covoare de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!