読者です 読者をやめる 読者になる 読者になる

しゃちの備忘録

これからC++を始める人によるC++の備忘録です(今のところ)

競プロで使えそうなC++標準入力まとめ

競プロの問題は標準入力で与えられることがほとんどです(だと思うんですけどどうなんですかね…間違ってたらごめんなさい).

まずは競プロでよくある出題のシチュエーションを想定して, その時にどのように標準入力で受け取ってやればいいかをまとめたいと思います.

一応適宜更新予定.

単一の入力が与えられる時

input >>> n
nは数値

std::int n;
std::cin >> n

input >>> c
cは文字

std::char n;
std::cin >> n

input >>> s
sは自由長の文字列

string s;
std::cin >> n

ただし, このやり方だとスペースが入るとそこで終わってしまうのでそこは注意.

1行で複数の入力が与えられる時

input >>> a b c

int a, b, c;
cin >> a >> b >> c;

最初の1行で入力される行数が, そのあとに単一の入力が与えられる時

input >>> n
input >>> a1
input >>> a2
input >>> ...
input >>> an

for文使ってくるくるします.

int n;
std::cin >> n;
int a[n];
for(int i=0; i<n; i++) std::cin >> a[i];

最初の1行で入力される行数と各行の個数が, そのあとに複数の入力が与えられる時

input >>> n m
input >>> a11 ... a1m
input >>> a21 ... a2m
input >>> ...
input >>> an1 ... anm

n×mの配列を作って, for文くるくる