Skip to content

Commit 535a7de

Browse files
Add files via upload
1 parent 53d3354 commit 535a7de

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
t = int(input())
2+
for _ in range(t):
3+
x, y = map(int, input().split())
4+
if x + 1 == y:
5+
print("Yes")
6+
continue
7+
if x < y:
8+
print("No")
9+
continue
10+
11+
if (x - y) % 9 == 8:
12+
print("Yes")
13+
else:
14+
print("No")
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#pragma GCC optimize("Ofast")
2+
#pragma GCC optimize("unroll-loops")
3+
#include <bits/stdc++.h>
4+
using namespace std;
5+
6+
typedef long long ll;
7+
8+
int main(){
9+
int tc;
10+
cin >> tc;
11+
while(tc--){
12+
int n;
13+
cin >> n;
14+
vector<int> v(n);
15+
map<int, int> m;
16+
for (int i = 0; i < n; i++){
17+
cin >> v[i];
18+
m[v[i]]++;
19+
}
20+
21+
int prev = -1;
22+
int prevNum = 0;
23+
bool can = true;
24+
while (!m.empty()){
25+
int val = m.begin()->first;
26+
int num = m.begin()->second;
27+
m.erase(m.begin());
28+
29+
if (prev + 1 == val){
30+
num += prevNum;
31+
}
32+
else if (prevNum > 0){
33+
m.insert({val, num});
34+
val = prev + 1;
35+
num = prevNum;
36+
}
37+
38+
if (num == 1){
39+
can = false;
40+
break;
41+
}
42+
num -= 2;
43+
prev = val;
44+
prevNum = num;
45+
}
46+
if (prevNum % 2 == 1){
47+
can = false;
48+
}
49+
50+
cout << (can ? "Yes" : "No") << endl;
51+
52+
}
53+
54+
return 0;
55+
}

0 commit comments

Comments
 (0)