QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#148801#6744. SquareClapEcho233AC ✓28ms3940kbC++141.1kb2023-08-23 19:04:262023-08-23 20:29:08

Judging History

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

  • [2023-08-23 20:29:08]
  • 评测
  • 测评结果:AC
  • 用时:28ms
  • 内存:3940kb
  • [2023-08-23 19:04:26]
  • 提交

answer

#include <bits/stdc++.h>
#define Tp template<typename Ty>
#define Ts template<typename Ty,typename... Ar>
#define ll long long
#define CI const int
#define RI int
#define W while
#define gc getchar
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
#define Mt(a,x) memset((a),(x),sizeof(a))
using namespace std;
namespace SlowIO {
	void Readc (char& c) {W (isspace (c = gc ()));}
	Tp void Read (Ty& x) {char c; int f = 1; x = 0; W (! isdigit (c = gc ())) f = c ^ '-' ? 1 : -1; W (x = (x * 10) + (c ^ 48), isdigit (c = gc ())); x *= f;}
	Ts void Read (Ty& x, Ar&... y) {Read (x); Read (y...);}
} using namespace SlowIO;
int T; ll a, b;
int main () {
	RI i, j; Read (T); W (T --) {
		Read (a, b);
		if (a >= b) {printf ("%lld\n", a - b); continue;}
		ll ida = (ll)(floor ((3.0 + sqrt (8 * a - 7)) / 2.0)), idb = (ll)(floor ((3.0 + sqrt (8 * b - 7)) / 2.0));
		ll fta = ida * (ida - 1) / 2, ftb = idb * (idb - 1) / 2; ll lena = fta - a, lenb = ftb - b;
		if (lena <= lenb) printf ("%lld\n", idb - ida + lenb - lena); else printf ("%lld\n", idb + lenb - lena);
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 3940kb

input:

2
5 1
1 5

output:

4
3

result:

ok 2 number(s): "4 3"

Test #2:

score: 0
Accepted
time: 28ms
memory: 3812kb

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