#pragma GCC optimize ("O2") #pragma GCC target ("avx") #include //#include //using namespace atcoder; using namespace std; typedef long long ll; #define rep(i, n) for(int i = 0; i < (n); i++) #define rep1(i, n) for(int i = 1; i <= (n); i++) #define co(x) cout << (x) << "\n" #define cosp(x) cout << (x) << " " #define ce(x) cerr << (x) << "\n" #define cesp(x) cerr << (x) << " " #define pb push_back #define mp make_pair #define chmin(x, y) x = min(x, y) #define chmax(x, y) x = max(x, y) #define Would #define you #define please int S[1000][1000]; int main() { cin.tie(0); ios::sync_with_stdio(false); ll N; cin >> N; const int mod = 1e9 + 7; //queue> Q, Q2; //Q.push({ 500,500 }); //int k = 0; //rep1(i, N) { // while (Q.size()) { // auto p = Q.front(); // Q.pop(); // int x = p.first; // int y = p.second; // auto ch = [&](int xx, int yy) { // if (S[xx][yy] < i) { // S[xx][yy] = i; // Q2.push({ xx,yy }); // } // }; // ch(x + 3, y); // ch(x + 3, y + 2); // ch(x + 3, y - 2); // ch(x - 3, y); // ch(x - 3, y + 2); // ch(x - 3, y - 2); // ch(x, y + 3); // ch(x + 2, y + 3); // ch(x - 2, y + 3); // ch(x, y - 3); // ch(x + 2, y - 3); // ch(x - 2, y - 3); // } // int k = 0; // rep(x, 1000) rep(y, 1000) { // k += (S[x][y] == i); // } // ce(i); // ce(k); // ce(6 * i * (3 * i + 1) - (i / 2) * ((i + 1) / 2) * 4 + (i + 1 & 1)); // swap(Q, Q2); //} if (N == 0) co(1); else if (N == 1) co(12); else if (N == 2) co(65); else { co(((6 * N % mod * (3 * N + 1) - (N / 2) * ((N + 1) / 2) * 4 + (N + 1 & 1)) % mod + mod) % mod); } Would you please return 0; }