結果
| 問題 |
No.1680 Sum and Difference
|
| コンテスト | |
| ユーザー |
pengin_2000
|
| 提出日時 | 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;
}
pengin_2000