You are a coach of a group consisting of n students. The i-th student has programming skill ai
. All students have distinct programming skills. You want to divide them into teams in such a way that:
- No two students i
and j such that |ai−aj|=1 belong to the same team (i.e. skills of each pair of students in the same team have the difference strictly greater than 1
- );
- the number of teams is the minimum possible.
You have to answer q
independent queries.
Input
The first line of the input contains one integer q
(1≤q≤100) — the number of queries. Then q
queries follow.
The first line of the query contains one integer n
(1≤n≤100) — the number of students in the query. The second line of the query contains n integers a1,a2,…,an (1≤ai≤100, all ai are distinct), where ai is the programming skill of the i
-th student.
Output
For each query, print the answer on it — the minimum number of teams you can form if no two students i
and j such that |ai−aj|=1 may belong to the same team (i.e. skills of each pair of students in the same team has the difference strictly greater than 1
)
Example
Input
Copy
4 4 2 10 1 20 2 3 6 5 2 3 4 99 100 1 42
Output
Copy
2 1 2 1
Note
In the first query of the example, there are n=4
students with the skills a=[2,10,1,20]. There is only one restriction here: the 1-st and the 3-th students can't be in the same team (because of |a1−a3|=|2−1|=1). It is possible to divide them into 2 teams: for example, students 1, 2 and 4 are in the first team and the student 3
in the second team.
In the second query of the example, there are n=2
students with the skills a=[3,6]. It is possible to compose just a single team containing both students.
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n, a[103],b[103],t_b=0; //t_b分组数量
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(int i =0;i<n;i++){
if(i==0) b[++t_b]=a[i];
else{
int flag=0;
for(int j=1;j<=t_b;++j){
if(abs(b[j]-a[i])!=1){
b[j]=a[i];
flag=1;break;
}
}
if(!flag)
b[++t_b]=a[i];
}
}
cout<<t_b<<endl;
}
return 0;
}