結果
問題 | No.1680 Sum and Difference |
ユーザー |
![]() |
提出日時 | 2022-08-20 15:45:00 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1 ms / 1,000 ms |
コード長 | 699 bytes |
コンパイル時間 | 359 ms |
コンパイル使用メモリ | 29,568 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-09 08:22:23 |
合計ジャッジ時間 | 1,364 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
#include<stdio.h> int main() { long long int a, b; scanf("%lld %lld", &a, &b); long long int p = 1000000007; long long int ans = 0; if (a > b) { a ^= b; b ^= a; a ^= b; } long long int min, max; min = (a + b) / 2 * -1; max = (b - a) / 2 * -1; max--; ans = (max - min + 1) % p * ((a + b + 1) % p) % p; ans += (min + max) % p * ((max - min + 1) % p) % p; ans %= p; max = (b - a) / 2; min = -max; ans += (max - min + 1) % p * ((2 * a + 1) % p) % p; ans %= p; min = (b - a + 2) / 2; max = (a + b) / 2; ans += (max - min + 1) % p * ((a + b + 1) % p) % p; ans %= p; ans -= (min + max) % p * ((max - min + 1) % p) % p; ans = (ans + p) % p; printf("%lld\n", ans); return 0; }