結果
問題 |
No.1448 和差算
|
ユーザー |
![]() |
提出日時 | 2021-04-01 19:03:23 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 6 ms / 2,000 ms |
コード長 | 1,892 bytes |
コンパイル時間 | 1,822 ms |
コンパイル使用メモリ | 138,356 KB |
最終ジャッジ日時 | 2025-01-20 05:05:42 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
#define _USE_MATH_DEFIMES #include <algorithm> #include <array> #include <bitset> #include <cassert> #include <cctype> #include <climits> #include <clocale> #include <cmath> #include <complex> #include <cstdio> #include <cstdlib> #include <ctime> #include <deque> #include <fstream> #include <functional> #include <iomanip> #include <iostream> #include <iterator> #include <limits> #include <list> #include <map> #include <numeric> #include <queue> #include <random> #include <regex> #include <set> #include <sstream> #include <stack> #include <string> #include <tuple> #include <unordered_map> #include <unordered_set> #include <utility> #include <vector> const int MOD = 1'000'000'007; const int MOD2 = 998'244'353; const int INF = 1'000'000'000; //1e9 const int NIL = -1; const long long LINF = 1'000'000'000'000'000'000; // 1e18 const long double EPS = 1E-10; template<class T, class S> inline bool chmax(T &a, const S &b){ if(a < b){ a = b; return true; } return false; } template<class T, class S> inline bool chmin(T &a, const S &b){ if(b < a){ a = b; return true; } return false; } long long power(long long a, unsigned long long b, long long m){ long long ret(1); while(b){ if(b & 1) ret = (ret * a) % m; a = (a * a) % m; b /= 2; if(ret < 0) ret += m; if(a < 0) a += m; } return ret; } long long rec(long long a, long long b, int n){ for(int i{0}; i < n; ++i){ a -= b; b += a + b; } return a + b; } int main(){ long long A, B, C, D; std::cin >> A >> B >> C >> D; long long N; std::cin >> N; long long prd{power(16, N / 8, MOD)}; long long ans{std::max({rec(A, C, N%8), rec(A, D, N%8), rec(B, C, N%8), rec(B, D, N%8)}) % MOD}; (ans *= prd) %= MOD; if(ans < 0) ans += MOD; std::cout << ans << std::endl; return 0; }