結果
問題 |
No.557 点対称
|
ユーザー |
|
提出日時 | 2019-04-15 22:11:25 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1 ms / 2,000 ms |
コード長 | 413 bytes |
コンパイル時間 | 256 ms |
コンパイル使用メモリ | 29,184 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-22 08:06:41 |
合計ジャッジ時間 | 994 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
#include <stdio.h> #define MOD(i) ((i)%1000000007) int main() { long long N; scanf("%lld", &N); long long n = 1; long long m = 5; if (N == 1) n = 2; // single: 1, 8 else if (N & 1) n = 3; // odd center: 0, 1, 8 N >>= 1; if (N > 0) { N--; n *= 4; // both ends: 1, 8, 6, 9 } for ( ; N; N >>= 1) { if (N & 1) n = MOD(n * m); m = MOD(m * m); } printf("%lld\n", n); return 0; }