This documentation is automatically generated by online-judge-tools/verification-helper
#define PROBLEM "https://judge.yosupo.jp/problem/aplusb"
#include "../../Src/Template/TypeAlias.hpp"
#include "../../Src/Algebra/Group/AdditiveGroup.hpp"
#include <iostream>
using namespace zawa;
int main() {
i32 A, B;
std::cin >> A >> B;
i32 ans = AdditiveGroup<i32>::operation(A, B);
std::cout << ans << std::endl;
}
#line 1 "Test/LC/aplusb.test.cpp"
#define PROBLEM "https://judge.yosupo.jp/problem/aplusb"
#line 2 "Src/Template/TypeAlias.hpp"
#include <cstdint>
#include <cstddef>
namespace zawa {
using i16 = std::int16_t;
using i32 = std::int32_t;
using i64 = std::int64_t;
using i128 = __int128_t;
using u8 = std::uint8_t;
using u16 = std::uint16_t;
using u32 = std::uint32_t;
using u64 = std::uint64_t;
using usize = std::size_t;
} // namespace zawa
#line 2 "Src/Algebra/Group/AdditiveGroup.hpp"
namespace zawa {
template <class T>
class AdditiveGroup {
public:
using Element = T;
static constexpr T identity() noexcept {
return T{};
}
static constexpr T operation(const T& l, const T& r) noexcept {
return l + r;
}
static constexpr T inverse(const T& v) noexcept {
return -v;
}
};
} // namespace zawa
#line 5 "Test/LC/aplusb.test.cpp"
#include <iostream>
using namespace zawa;
int main() {
i32 A, B;
std::cin >> A >> B;
i32 ans = AdditiveGroup<i32>::operation(A, B);
std::cout << ans << std::endl;
}