feat(cf): update ignore
This commit is contained in:
parent
742bf851a9
commit
490d4aa62f
25 changed files with 739 additions and 217 deletions
53
codeforces/971/e.cc
Normal file
53
codeforces/971/e.cc
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
#define ll long long
|
||||
|
||||
using ld = long double;
|
||||
|
||||
auto inclusive_sum = [](unsigned ll l, unsigned ll r) {
|
||||
unsigned ll sum_r = r / 2 * (r + 1);
|
||||
if (r % 2)
|
||||
sum_r += (r + 1) / 2;
|
||||
l--;
|
||||
unsigned ll sum_l = l / 2 * (l + 1);
|
||||
if (l % 2)
|
||||
sum_l += (l + 1) / 2;
|
||||
return sum_r - sum_l;
|
||||
};
|
||||
|
||||
auto quad = [](ld a, ld b, ld c) {
|
||||
return (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
|
||||
};
|
||||
|
||||
void solve() {
|
||||
unsigned ll n, k;
|
||||
cin >> n >> k;
|
||||
|
||||
ll half = inclusive_sum(k, k + n - 1) / 2;
|
||||
|
||||
ld i = quad(0.5, k + 0.5, -half);
|
||||
|
||||
unsigned ll a = max(1LL, static_cast<ll>(ceil(i)));
|
||||
unsigned ll b = min(n, a + 1);
|
||||
|
||||
unsigned ll x = inclusive_sum(k, k + a - 1);
|
||||
unsigned ll y = inclusive_sum(k + a, k + n - 1);
|
||||
unsigned ll diff1 = x < y ? y - x : x - y;
|
||||
|
||||
x = inclusive_sum(k, k + b - 1);
|
||||
y = inclusive_sum(k + b, k + n - 1);
|
||||
unsigned ll diff2 = x < y ? y - x : x - y;
|
||||
|
||||
cout << min(diff1, diff2) << endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int t;
|
||||
cin >> t;
|
||||
while (t--)
|
||||
solve();
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue