Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
34611 23级逯一鸣 【S】T1 C++ 运行超时 90 1000 MS 184 KB 1056 2024-11-12 13:19:03

Tests(10/11):


#include <algorithm> #include <cmath> #include <cstdio> using namespace std; using i64 = long long; constexpr int MOD = 1e9 + 7, INV_2 = 500000004; #define SQ(X) ((i64)(X) * (X)) inline int add(int x, int y) { return ((i64)x + y + MOD) % MOD; } inline int mul(i64 x, i64 y) { return (x % MOD) * (y % MOD) % MOD; } inline int halve(int x) { return mul(x, INV_2); } inline int sum(i64 l, i64 r) { return halve(mul(r + l, r - l + 1)); } int main() { // freopen("alice.in", "r", stdin); // freopen("alice.out", "w", stdout); i64 l, r; int ans = 0; scanf("%lld %lld", &l, &r); for (int i = sqrt(l); SQ(i - 1) <= r; ++i) { i64 lst = SQ(i - 1), curr = SQ(i), nxt = SQ(i + 1), lo = curr - ((curr - lst) >> 1), hi = curr + ((nxt - curr) >> 1); if (hi < l || lo > r) continue; lo = max(lo, l); hi = min(hi, r); ans = add(ans, (curr & 1 ? 1 : -1) * sum(lo, hi)); } printf("%d\n", ans); return 0; }


测评信息: