#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
const int mod = 998244353;
typedef long long ll;
typedef unsigned long long ull;
int a[N];
int n;
bool cmp(int a,int b)
{
return a>b;
}
void solve()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
if(a[i]>n)
{
cout<<-1<<'\n';
return ;
}
}
sort(a+1,a+1+n,cmp);
int cnt = 0;
for(int i=1;i<=n;)
{
i+=a[i];
// cout<<i<<' ';
if(i-1<=n)cnt++;
if(a[i]>a[i+1]+1)i++;
}
cout<<cnt<<'\n';
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t=1;
// cin>>t;
while(t--)
{
solve();
}
return 0;
}
贪心

京公网安备 11010502036488号