// yukicoder: No.72 そろばん Med // 2019.4.9 bal4u // 下部に珠がx個だとすると、表現する最大数は (x+1)*(n-x)+x // = nx - x^2 + n #include #define M 1000007 long long N; int calc(long long x) { int t = ((x % M) * ((N - x) % M)) % M + N % M; return (int)(t % M); } int main() { long long x; int a, ans; scanf("%lld", &N); x = N / 2; ans = calc(x); x++; a = calc(x + 1); if (a > ans) ans = a; printf("%d\n", ans); return 0; }