結果
問題 |
No.1500 Super Knight
|
ユーザー |
![]() |
提出日時 | 2021-05-08 00:20:20 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,430 bytes |
コンパイル時間 | 851 ms |
コンパイル使用メモリ | 99,684 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-15 12:26:11 |
合計ジャッジ時間 | 1,927 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 33 |
ソースコード
/* -*- coding: utf-8 -*- * * 1500.cc: No.1500 Super Knight - yukicoder */ #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<iostream> #include<string> #include<vector> #include<map> #include<set> #include<stack> #include<list> #include<queue> #include<deque> #include<algorithm> #include<numeric> #include<utility> #include<complex> #include<functional> using namespace std; /* constant */ int MOD = 1000000007; int dxs[] = { 3, 3, 2, 0, -2, -3, -3, -3, -2, 0, 2, 3 }; int dys[] = { 0, 2, 3, 3, 3, 2, 0, -2, -3, -3, -3, -2 }; /* typedef */ typedef long long ll; typedef vector<string> vs; /* global variables */ /* subroutines */ void test(int n) { int o = n * 3, m = o * 2 + 1; vs fs(m, string(m, '.')); fs[o][o] = 'X'; for (int i = 0; i < n; i++) { vs gs(m, string(m, '.')); for (int y = 0; y < m; y++) for (int x = 0; x < m; x++) if (fs[y][x] != '.') for (int di = 0; di < 12; di++) { int vx = x + dxs[di], vy = y + dys[di]; if (vx >= 0 && vx < m && vy >= 0 && vy < m) gs[vy][vx] = 'X'; } swap(fs, gs); } for (int y = 0; y < m; y++) puts(fs[y].c_str()); } /* main */ int main() { int n; scanf("%d", &n); //test(n); if (n == 0) puts("1"); else if (n == 1) puts("12"); else if (n == 2) puts("65"); else { int c = (17LL * n % MOD * n % MOD + 6LL * n % MOD + 1) % MOD; printf("%d\n", c); } return 0; }