Feu un programa que comenci llegint i escrivint una matriu d’enters . A continuació, per a cada parell de naturals i donats, cal escriure la matriu anterior amb les columnes i intercanviades. Les columnes es numeren des de 0 fins a .
Utilitzant la definició
typedef vector<vector<int> > Matriu;
el vostre programa ha d’implementar i usar la funció
void intercanvia(Matriu& mat, int j, int k);
que, donada la matriu |mat| i els naturals i , intercanvia les columnes i de |mat|. Els índexos i sempre estaran entre 0 i el nombre de columnes de |mat| menys u.
L’entrada comença amb les dimensions i de la matriu, seguides de línies amb elements cadascuna, seguides d’una seqüència de parells , . Cada i cada es troba entre 0 i .
Cal escriure la seqüència de matrius composta per la matriu llegida, seguida de la matriu resultat de cada intercanvi. Fixeu-vos que cal escriure línies amb cinc guions per separar les matrius, així com al principi i al final.
Input
4 6 11 22 33 46 15 32 41 33 94 58 71 32 56 23 45 98 21 12 54 15 37 26 17 99 2 3 5 4 0 1 5 4
Output
----- 11 22 33 46 15 32 41 33 94 58 71 32 56 23 45 98 21 12 54 15 37 26 17 99 ----- 11 22 46 33 15 32 41 33 58 94 71 32 56 23 98 45 21 12 54 15 26 37 17 99 ----- 11 22 46 33 32 15 41 33 58 94 32 71 56 23 98 45 12 21 54 15 26 37 99 17 ----- 22 11 46 33 32 15 33 41 58 94 32 71 23 56 98 45 12 21 15 54 26 37 99 17 ----- 22 11 46 33 15 32 33 41 58 94 71 32 23 56 98 45 21 12 15 54 26 37 17 99 -----
Input
3 4 1 0 1 1 0 2 0 3 1 1 9 5
Output
----- 1 0 1 1 0 2 0 3 1 1 9 5 -----
Input
2 2 6 7 8 9 0 1 1 0 0 0 1 1
Output
----- 6 7 8 9 ----- 7 6 9 8 ----- 6 7 8 9 ----- 6 7 8 9 ----- 6 7 8 9 -----
Input
2 1 7 9 0 0 0 0
Output
----- 7 9 ----- 7 9 ----- 7 9 -----