lwm学姐的木屋
原题链接https://nuoyanli.com/contest/33/problem/C
将木板按照从大到小排列
选取的个数便是正方形的边长,判断边长与当前木板能否构成正方形即可
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(long long x,long long y)
{
return x>y;
}
int main()
{
long long k;
scanf("%lld",&k);
while(k--)
{
long long n;
scanf("%lld",&n);
long long a[10005];
long long i,sum=0,aa=100005;
for(i=0;i<n;i++)
{
scanf("%lld",&a[i]);
}
sort(a,a+n,cmp);
for(i=0;i<n;i++)
{
if(sum<a[i])
{
sum++;
}else
{
break;
}
}
printf("%lld\n",sum);
}
return 0;
}