Răspuns :
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
#include <math.h>
using namespace std;
int z[101][101];
int n, m, i, j, k, t, cade=1, c;
int main(){
// Citeste n , m, k
cin>>n>>m>>k;
// deseneaza zidul;
//ifstream filein;
//filein.open("arma.in");
// ifstream fileout;
// fileout.open("arma.out");
//filein >> n >> m >> k;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
cin>>t;
// filein>>t;
z[i][j]=t;
//cout<<t<<" ";
}
// cout << endl;
}
//cout << endl;
// Executa trageri
for(c=1;c<=k;c++){
cin >> t;
//filein >>t;
//sparge zidul
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(z[i][j]==t){
z[i][j]=0;
}
}
//cout >>endl;
}
}
//rearanjeaza zidul
while(cade==1){
cade=0;
for(i=n;i>1;i--){
for(j=1;j<=m;j++){
if((z[i][j]==0)&(z[i-1][j]!=0)){
z[i][j]=z[i-1][j];
z[i-1][j]=0;
cade=1;
}
}
}
}
//afiseazae zidul
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
cout << z[i][j];
if(j==m){
cout<<endl;
}else{
cout<<" ";
}
}
}
//filein.close();
}
#include <fstream>
#include <cstdlib>
#include <string>
#include <math.h>
using namespace std;
int z[101][101];
int n, m, i, j, k, t, cade=1, c;
int main(){
// Citeste n , m, k
cin>>n>>m>>k;
// deseneaza zidul;
//ifstream filein;
//filein.open("arma.in");
// ifstream fileout;
// fileout.open("arma.out");
//filein >> n >> m >> k;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
cin>>t;
// filein>>t;
z[i][j]=t;
//cout<<t<<" ";
}
// cout << endl;
}
//cout << endl;
// Executa trageri
for(c=1;c<=k;c++){
cin >> t;
//filein >>t;
//sparge zidul
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(z[i][j]==t){
z[i][j]=0;
}
}
//cout >>endl;
}
}
//rearanjeaza zidul
while(cade==1){
cade=0;
for(i=n;i>1;i--){
for(j=1;j<=m;j++){
if((z[i][j]==0)&(z[i-1][j]!=0)){
z[i][j]=z[i-1][j];
z[i-1][j]=0;
cade=1;
}
}
}
}
//afiseazae zidul
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
cout << z[i][j];
if(j==m){
cout<<endl;
}else{
cout<<" ";
}
}
}
//filein.close();
}