This documentation is automatically generated by online-judge-tools/verification-helper
#define PROBLEM "https://judge.yosupo.jp/problem/many_aplusb"
#include "./../Utility/Scanner.cpp"
#include "./../Utility/Printer.cpp"
#include <iostream>
using namespace std;
int main() {
for (int t = in; t--;) {
long long a = in, b = in;
out(a + b);
}
}
#line 1 "test/Input_Output.test.cpp"
#define PROBLEM "https://judge.yosupo.jp/problem/many_aplusb"
#line 2 "Utility/Scanner.cpp"
#include <iostream>
#include <vector>
#include <string>
#include <utility>
#include <tuple>
#include <type_traits>
#ifdef _WIN32
#define getchar_unlocked _getchar_nolock
#define putchar_unlocked _putchar_nolock
#define fwrite_unlocked fwrite
#define fflush_unlocked fflush
#endif
class Scanner {
template <class T, class = void> struct has_scan : std::false_type {};
template <class T>
struct has_scan<T, std::void_t<decltype(std::declval<T>().template scan<Scanner>())>>
: std::true_type {};
public:
static int gc() {
return getchar_unlocked();
}
static char next_char() {
char c;
scan(c);
return c;
}
template <class T> static void scan(T& v) {
if (has_scan<T>::value) {
v.template scan<Scanner>();
} else {
std::cin >> v;
}
}
static void scan(char& v) {
while (std::isspace(v = gc()))
;
}
static void scan(bool& v) {
v = next_char() != '0';
}
static void scan(std::vector<bool>::reference v) {
bool b;
scan(b);
v = b;
}
static void scan(std::string& v) {
v.clear();
for (char c = next_char(); !std::isspace(c); c = gc()) v += c;
}
static void scan(int& v) {
v = 0;
bool neg = false;
char c = next_char();
if (c == '-') {
neg = true;
c = gc();
}
for (; std::isdigit(c); c = gc()) v = v * 10 + (c - '0');
if (neg) v = -v;
}
static void scan(long long& v) {
v = 0;
bool neg = false;
char c = next_char();
if (c == '-') {
neg = true;
c = gc();
}
for (; std::isdigit(c); c = gc()) v = v * 10 + (c - '0');
if (neg) v = -v;
}
static void scan(double& v) {
v = 0;
double dp = 1;
bool neg = false, after_dp = false;
char c = next_char();
if (c == '-') {
neg = true;
c = gc();
}
for (; std::isdigit(c) || c == '.'; c = gc()) {
if (c == '.') {
after_dp = true;
} else if (after_dp) {
v += (c - '0') * (dp *= 0.1);
} else {
v = v * 10 + (c - '0');
}
}
if (neg) v = -v;
}
static void scan(long double& v) {
v = 0;
long double dp = 1;
bool neg = false, after_dp = false;
char c = next_char();
if (c == '-') {
neg = true;
c = gc();
}
for (; std::isdigit(c) || c == '.'; c = gc()) {
if (c == '.') {
after_dp = true;
} else if (after_dp) {
v += (c - '0') * (dp *= 0.1);
} else {
v = v * 10 + (c - '0');
}
}
if (neg) v = -v;
}
template <class T, class U> static void scan(std::pair<T, U>& v) {
scan(v.first);
scan(v.second);
}
template <class T, std::enable_if_t<!std::is_same_v<bool, T>, std::nullptr_t> = nullptr>
static void scan(std::vector<T>& v) {
for (auto& e : v) scan(e);
}
template <class T, std::enable_if_t<std::is_same_v<bool, T>, std::nullptr_t> = nullptr>
static void scan(std::vector<T>& v) {
for (auto e : v) scan(e);
}
private:
template <std::size_t N = 0, class T> static void scan_tuple_impl(T& v) {
if constexpr (N < std::tuple_size_v<T>) {
scan(std::get<N>(v));
scan_tuple_impl<N + 1>(v);
}
}
public:
template <class... T> static void scan(std::tuple<T...>& v) {
scan_tuple_impl(v);
}
private:
struct Read2DVectorHelper {
std::size_t h, w;
Read2DVectorHelper(std::size_t _h, std::size_t _w) : h(_h), w(_w) {}
template <class T> operator std::vector<std::vector<T>>() {
std::vector vector(h, std::vector<T>(w));
scan(vector);
return vector;
}
};
struct ReadVectorHelper {
std::size_t n;
ReadVectorHelper(std::size_t _n) : n(_n) {}
template <class T> operator std::vector<T>() {
std::vector<T> vector(n);
scan(vector);
return vector;
}
auto operator[](std::size_t m) {
return Read2DVectorHelper(n, m);
}
};
public:
template <class T> T read() const {
T result;
scan(result);
return result;
}
template <class T> auto read(std::size_t n) const {
std::vector<T> result(n);
scan(result);
return result;
}
template <class T> auto read(std::size_t h, std::size_t w) const {
std::vector result(h, std::vector<T>(w));
scan(result);
return result;
}
std::string read_line() const {
std::string v;
for (char c = gc(); c != '\n' && c != '\0'; c = gc()) v += c;
return v;
}
template <class T> operator T() const {
return read<T>();
}
int operator--(int) const {
return read<int>() - 1;
}
auto operator[](std::size_t n) const {
return ReadVectorHelper(n);
}
auto operator[](const std::pair<std::size_t, std::size_t>& nm) const {
return Read2DVectorHelper(nm.first, nm.second);
}
void operator()() const {}
template <class H, class... T> void operator()(H&& h, T&&... t) const {
scan(h);
operator()(std::forward<T>(t)...);
}
private:
template <template <class...> class, class...> struct Column;
template <template <class...> class V, class Head, class... Tail>
struct Column<V, Head, Tail...> {
template <class... Args> using vec = V<std::vector<Head>, Args...>;
using type = typename Column<vec, Tail...>::type;
};
template <template <class...> class V> struct Column<V> { using type = V<>; };
template <class... T> using column_t = typename Column<std::tuple, T...>::type;
template <std::size_t N = 0, class T> void column_impl(T& t) const {
if constexpr (N < std::tuple_size_v<T>) {
auto& vec = std::get<N>(t);
using V = typename std::remove_reference_t<decltype(vec)>::value_type;
vec.push_back(read<V>());
column_impl<N + 1>(t);
}
}
public:
template <class... T> auto column(std::size_t h) const {
column_t<T...> result;
while (h--) column_impl(result);
return result;
}
} in;
#define inputs(T, ...) \
T __VA_ARGS__; \
in(__VA_ARGS__)
#define ini(...) inputs(int, __VA_ARGS__)
#define inl(...) inputs(long long, __VA_ARGS__)
#define ins(...) inputs(std::string, __VA_ARGS__)
#line 5 "Utility/Printer.cpp"
#include <array>
#line 7 "Utility/Printer.cpp"
#include <string_view>
#include <optional>
#include <charconv>
#line 11 "Utility/Printer.cpp"
#include <cstring>
#include <cassert>
class Printer {
public:
struct BoolString {
std::string_view t, f;
BoolString(std::string_view _t, std::string_view _f) : t(_t), f(_f) {}
};
struct Separator {
std::string_view div, sep, last;
Separator(std::string_view _div, std::string_view _sep, std::string_view _last)
: div(_div), sep(_sep), last(_last) {}
};
inline static const BoolString Yes{"Yes", "No"}, yes{"yes", "no"}, YES{"YES", "NO"},
Int{"1", "0"}, Possible{"Possible", "Impossible"};
inline static const Separator space{" ", " ", "\n"}, no_space{"", "", "\n"},
endl{"\n", "\n", "\n"}, comma{",", ",", "\n"}, no_endl{" ", " ", ""},
sep_endl{" ", "\n", "\n"};
BoolString bool_str{Yes};
Separator separator{space};
private:
template <class T, class = void> struct has_print : std::false_type {};
template <class T>
struct has_print<T,
std::void_t<decltype(std::declval<T>().print(std::declval<Printer>()))>>
: std::true_type {};
public:
void print(int v) const {
char buf[12]{};
if (auto [ptr, e] = std::to_chars(std::begin(buf), std::end(buf), v);
e == std::errc{}) {
print(std::string_view(buf, ptr - buf));
} else {
assert(false);
}
}
void print(long long v) const {
char buf[21]{};
if (auto [ptr, e] = std::to_chars(std::begin(buf), std::end(buf), v);
e == std::errc{}) {
print(std::string_view(buf, ptr - buf));
} else {
assert(false);
}
}
void print(bool v) const {
print(v ? bool_str.t : bool_str.f);
}
void print(std::vector<bool>::reference v) const {
print(v ? bool_str.t : bool_str.f);
}
void print(char v) const {
putchar_unlocked(v);
}
void print(std::string_view v) const {
fwrite_unlocked(v.data(), sizeof(std::string_view::value_type), v.size(), stdout);
}
void print(double v) const {
std::printf("%.20f", v);
}
void print(long double v) const {
std::printf("%.20Lf", v);
}
template <class T, std::enable_if_t<has_print<T>::value, std::nullptr_t> = nullptr>
void print(const T& v) const {
v.print(*this);
}
template <class T, std::enable_if_t<!has_print<T>::value, std::nullptr_t> = nullptr>
void print(const T& v) const {
std::cout << v;
}
template <class T, class U> void print(const std::pair<T, U>& v) const {
print(v.first);
print(separator.div);
print(v.second);
}
template <class T> void print(const std::optional<T>& v) const {
print(*v);
}
template <class InputIterater>
void print_range(const InputIterater& begin, const InputIterater& end) const {
for (InputIterater i = begin; i != end; ++i) {
if (i != begin) print(separator.sep);
print(*i);
}
}
template <class T> void print(const std::vector<T>& v) const {
print_range(v.begin(), v.end());
}
template <class T, std::size_t N> void print(const std::array<T, N>& v) const {
print_range(v.begin(), v.end());
}
template <class T> void print(const std::vector<std::vector<T>>& v) const {
for (std::size_t i = 0; i < v.size(); ++i) {
if (i) print(separator.last);
print(v[i]);
}
}
Printer() = default;
Printer(const BoolString& _bool_str, const Separator& _separator)
: bool_str(_bool_str), separator(_separator) {}
Printer& operator()() {
print(separator.last);
return *this;
}
template <class Head> Printer& operator()(Head&& head) {
print(head);
print(separator.last);
return *this;
}
template <class Head, class... Tail> Printer& operator()(Head&& head, Tail&&... tail) {
print(head);
print(separator.sep);
return operator()(std::forward<Tail>(tail)...);
}
template <class... Args> Printer& flag(bool f, Args&&... args) {
if (f) {
return operator()(std::forward<Args>(args)...);
} else {
return *this;
}
}
template <class InputIterator>
Printer& range(const InputIterator& begin, const InputIterator& end) {
print_range(begin, end);
print(separator.last);
return *this;
}
template <class Container> Printer& range(const Container& a) {
range(a.begin(), a.end());
return *this;
}
template <class... T> void exit(T&&... t) {
operator()(std::forward<T>(t)...);
std::exit(EXIT_SUCCESS);
}
Printer& flush() {
fflush_unlocked(stdout);
return *this;
}
Printer& set(const BoolString& _bool_str) {
bool_str = _bool_str;
return *this;
}
Printer& set(const Separator& _separator) {
separator = _separator;
return *this;
}
Printer& set(std::string_view t, std::string_view f) {
bool_str = BoolString(t, f);
return *this;
}
} out;
#line 5 "test/Input_Output.test.cpp"
using namespace std;
int main() {
for (int t = in; t--;) {
long long a = in, b = in;
out(a + b);
}
}