AtCoder Beginner Contest 237 B - Matrix Transposition
問題の要約
H行W列の行列Aが与えられる。
Aの上からi行目、左からj列目の要素はAi,j。
Aの転置行列Bを出力しろ。
制約
1<=H,W<=10^5
H*W<=10^5
1<=Ai,j<=10^9
入力
H W
A1,1 ... A1,W
...
AH,1 ... AH,W
考え方
1,制約のH*W<=10^5より二重のfor文を使ってAからBを作成しても十分間に合う。
実際のプログラム
#include<iostream>
#include<vector>
using namespace std;
int main(){
long H,W;
cin >> H >> W;
vector<vector<long>> A(H,vector<long>(W,0));
for(long i = 0; i < H; i++){
for(long j = 0; j < W; j++){
cin >> A[i][j];
}
}
vector<vector<long>> B(W,vector<long>(H,0));
for(long i = 0; i < H; i++){
for(long j = 0; j < W; j++){
B[j][i] = A[i][j];
}
}
for(long i = 0; i < W; i++){
for(long j = 0; j < H; j++){
cout << B[i][j] << " ";
}cout << endl;
}
return 0;
}