結果
問題 | No.1476 esreveR dna esreveR |
ユーザー |
|
提出日時 | 2021-04-16 20:59:21 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 6,567 bytes |
コンパイル時間 | 4,309 ms |
コンパイル使用メモリ | 256,956 KB |
最終ジャッジ日時 | 2025-01-20 19:11:40 |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 6 |
ソースコード
#include<bits/stdc++.h>// using namespace std;#if __has_include(<atcoder/all>)#include<atcoder/all>// using namespace atcoder;#endif#define int long long#pragma region header#pragma region aliasusing lint = long long;using ll = long long;using P = std::pair<int,int>;template<class T> using prique = std::priority_queue<T,std::vector<T>,std::greater<T>>;#pragma endregion#pragma region macros#define rep(i, n) for(int i = 0;i<(int)(n);i++)#define REP(i, m, n) for(int i = (m);i<(int)(n);i++)#define drep(i, n) for(int i = (n)-1;i>=0;i--)#define DREP(i, m, n) for(int i = (m)-1;i>=(int)(n);i--)#define all(v) (v).begin(),(v).end()#define reall(v) (v).rbegin(),(v).rend()template<class T, class U>bool chmax(T& a,const U b) {if(a < b) {a = b;return true;}return false;}template<class T, class U>bool chmin(T& a,const U b) {if(a>b) {a = b;return true;}return false;}std::map<int,int> prime_div(int n) {std::map<int,int> mp;if(~n&1) while(~n&1) n>>=1,mp[2]++;for(int i = 3;i<=std::sqrt(n);i+=2) {if(n%i==0) {while(n%i==0) {n/=i;mp[i]++;}}}if(n!=1) mp[n]++;return mp;}bool is_flag(const int &bit, const int &k) { return (bit >> k)&1; }#pragma endregion#pragma region constantconstexpr long long inf = 1LL << 61;constexpr long double eps = 1e-10;constexpr long double pi = 3.141592653589793238;constexpr int dx[9] = {1, 0, -1, 0, 1, 1, -1, -1, 0};constexpr int dy[9] = {0, 1, 0, -1, 1, -1, 1, -1, 0};constexpr long long mod = 1e9+7;constexpr long long MOD = 998244353;#pragma endregion#pragma region inouttemplate<class T>std::ostream& operator<<(std::ostream& stream, const std::vector<T>& v) {for(int i = 0; i < (int)(v.size()); i++) {stream << v[i];if(i != (int)(v.size()) - 1) stream << ' ';}return stream;}template<typename Itr>inline void print(const Itr& begin, const Itr& end, bool endline = true, const char* BEGIN = "{", const char* mid = ", ", const char* END = "}") {if(begin == end) return;std::cout << BEGIN << *begin;for(Itr itr = begin+1; itr < end; itr++) std::cout << mid << *itr;std::cout << END;if(endline) std::endl(std::cout);return;}template<class T>std::istream& operator>>(std::istream& stream, std::vector<T>& v) {for(T& p:v) stream >> p;return stream;}template<typename Itr>inline void input(Itr begin, Itr end) {for(Itr& itr = begin; itr < end; itr++) std::cin >> *itr;return;}template<class T, class U>std::ostream& operator<<(std::ostream& stream, const std::pair<T,U>& pair) {return stream << pair.first << ' ' << pair.second;}template<class T, class U>inline void print(const std::pair<T,U>& pair,const bool endline = true, const char* begin = "(", const char* mid = ", ", const char* end = ")") {std::cout << begin << pair.first << mid << pair.second << end;if(endline) std::endl(std::cout);else std::cout << ' ';return;}template<class T, class U>std::istream& operator>>(std::istream& stream, std::pair<T,U>& pair) {return stream >> pair.first >> pair.second;}template<class T, class U>inline void input(std::pair<T,U>& pair, const bool first = true, const bool second = true) {if(first) std::cin >> pair.first;if(second) std::cin >> pair.second;}#pragma endregion#pragma region DEBUG#ifdef _DEBUGtemplate<class T>inline void _debug_view(const T& x) noexcept {std::cout << x;return;}template<class T, class U>inline void _debug_view(const std::pair<T,U>& p) noexcept {std::cout << "(";_debug_view(p.first);std::cout << ", ";_debug_view(p.second);std::cout << ")";return;}template<class T>inline void _debug_view(const std::vector<T>& v) noexcept {std::cout << "{";for(int i = 0;i<v.size();i++) {_debug_view(v[i]);std::cout << (i+1 == v.size() ? "" : ", ");}std::cout << "}";return;}template<class T, class U>inline void _debug_view(const std::map<T,U>& mp) noexcept {std::cout << "{";for(auto itr = mp.begin(); itr != mp.end(); itr++) {_debug_view(*itr);if(std::next(itr) != mp.end()) std::cout << ", ";}std::cout << "}";return;}template<class T>inline void _debug_view(const std::set<T>& st) noexcept {std::cout << "{";for(auto itr = st.begin(); itr != st.end(); itr++) {_debug_view(*itr);if(std::next(itr) != st.end()) std::cout << ", ";}std::cout << "}";return;}#define overload5(_1,_2,_3,_4,_5,name,...) name#define _debug1(a) {\do {\std::cout << #a << ": ";\_debug_view(a);\std::endl(std::cout);\}while(0);\}#define _debug2(a,b) {\do {\std::cout << #a << ": ";\_debug_view(a);\std::cout << ", " << #b << ": ";\_debug_view(b);\std::endl(std::cout);\}while(0);\}#define _debug3(a,b,c) {\do {\std::cout << #a << ": ";\_debug_view(a);\std::cout << ", " << #b << ": ";\_debug_view(b);\std::cout << ", " << #c << ": ";\_debug_view(c);\std::endl(std::cout);\}while(0);\}#define _debug4(a,b,c,d) {\do {\std::cout << #a << ": ";\_debug_view(a);\std::cout << ", " << #b << ": ";\_debug_view(b);\std::cout << ", " << #c << ": ";\_debug_view(c);\std::cout << ", " << #d << ": ";\_debug_view(d);\std::endl(std::cout);\}while(0);\}#define _debug5(a,b,c,d,e) {\do {\std::cout << #a << ": ";\_debug_view(a);\std::cout << ", " << #b << ": ";\_debug_view(b);\std::cout << ", " << #c << ": ";\_debug_view(c);\std::cout << ", " << #d << ": ";\_debug_view(d);\std::cout << ", " << #e << ": ";\_debug_view(e);\std::endl(std::cout);\}while(0);\}#define debug(...) overload5(__VA_ARGS__,_debug5,_debug4,_debug3,_debug2,_debug1,)(__VA_ARGS__)#else#define debug(...)#endif#pragma endregion#pragma endregionsigned main(void) {int n;std::cin >> n;int res = 1;int k = n/2;n = 6;while(k) {if(k&1) {res*=n;res%=MOD;}n*=n;n%=MOD;k>>=1;}std::cout << res << std::endl;return 0;}