QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#293010#6744. SquareDinoHadzicAC ✓44ms3584kbC++14834b2023-12-28 19:39:162023-12-28 19:39:17

Judging History

你现在查看的是最新测评结果

  • [2023-12-28 19:39:17]
  • 评测
  • 测评结果:AC
  • 用时:44ms
  • 内存:3584kb
  • [2023-12-28 19:39:16]
  • 提交

answer

#include <bits/stdc++.h>

#define ll long long
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define pb push_back
#define FIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)

using namespace std;

typedef pair <ll, ll> pii;

ll Row(ll x) {
	ll lo = 1, hi = 2e9;
	while (lo < hi) {
		ll mid = (lo + hi + 1) / 2;
		if (mid*(mid-1)/2 < x) lo = mid;
		else hi = mid-1;
	}
	return lo;
}

ll Dia(ll x) {
	ll y = Row(x);
	return y*(y+1)/2-x;
}

void task() {
	ll x, y; cin >> x >> y;
	ll rx = Row(x), ry = Row(y), dx = Dia(x), dy = Dia(y);
	if (ry < rx) {
		cout << x-y << "\n";
		return;
	}
	if (dx <= dy) {
		cout << ry-rx+dy-dx << "\n";
		return;
	}
	cout << ry-dx+dy+1 << "\n";
}

int main () {
	FIO;
	int tt; cin >> tt;
	while (tt--) task();

	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3576kb

input:

2
5 1
1 5

output:

4
3

result:

ok 2 number(s): "4 3"

Test #2:

score: 0
Accepted
time: 44ms
memory: 3584kb

input:

100000
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 ...

output:

0
2
1
4
3
2
6
5
4
3
8
7
6
5
4
10
9
8
7
6
5
12
11
10
9
8
7
6
14
13
12
11
10
9
8
7
16
15
14
13
12
11
10
9
8
18
17
16
15
14
13
12
11
10
9
20
19
18
17
16
15
14
13
12
11
10
22
21
20
19
18
17
16
15
14
13
12
11
24
23
22
21
20
19
18
17
16
15
14
13
12
26
25
24
23
22
21
20
19
18
1
0
2
2
1
3
4
3
2
4
6
5
4
3
5
...

result:

ok 100000 numbers