This documentation is automatically generated by online-judge-tools/verification-helper
#include "misc/io.hpp"入出力用の関数です。
void scan(T a, U b, ...)
変数 a, b, … に対して入力を読み取り、値を格納します。
T, U, … に対して std::cin で入力できるようになっている(std::istream が定義されている)void print(T a, U b, ...)
変数 a, b, … の値をスペース区切りで出力し、最後に改行します。
T, U, … に対して std::cout で出力できるようになっている(std::ostream が定義されている)void printi(T a, U b, ...)
変数 a, b, … の値をスペース区切りで出力し、最後に改行し、フラッシュします(std::endl に相当します)。
主にインタラクティブ問題のために利用します。
T, U, … に対して std::cout で出力できるようになっている(std::ostream が定義されている)#pragma once
#include <iostream>
// I/O
// input
template <class... T> void in(T&... a) { (std::cin >> ... >> a); }
void scan() {}
template <class Head, class... Tail> void scan(Head& head, Tail&... tail) {
in(head);
scan(tail...);
}
// output
template <class... T> void out(const T&... a) { (std::cout << ... << a); }
void print() { out('\n'); }
template <class Head, class... Tail> void print(Head&& head, Tail&&... tail) {
out(head);
if (sizeof...(Tail)) out(' ');
print(tail...);
}
// output for interactive problems
void printi() { std::cout << std::endl; }
template <class Head, class... Tail> void printi(Head&& head, Tail&&... tail) {
out(head);
if (sizeof...(Tail)) out(' ');
printi(tail...);
}#line 2 "misc/io.hpp"
#include <iostream>
// I/O
// input
template <class... T> void in(T&... a) { (std::cin >> ... >> a); }
void scan() {}
template <class Head, class... Tail> void scan(Head& head, Tail&... tail) {
in(head);
scan(tail...);
}
// output
template <class... T> void out(const T&... a) { (std::cout << ... << a); }
void print() { out('\n'); }
template <class Head, class... Tail> void print(Head&& head, Tail&&... tail) {
out(head);
if (sizeof...(Tail)) out(' ');
print(tail...);
}
// output for interactive problems
void printi() { std::cout << std::endl; }
template <class Head, class... Tail> void printi(Head&& head, Tail&&... tail) {
out(head);
if (sizeof...(Tail)) out(' ');
printi(tail...);
}