考试时没想出来,打了个30分暴力dfs交了上去。
结果爆0,发现直接炸数组,自闭了。。。
正解就是一个模拟,
我们拿样例来讲
首先排序:
然后直接开始模拟,神奇炸了!
代码
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
long long n,a[1000010],js,x;
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
scanf("%lld",&a[i]);
sort(a+1,a+1+n);
for(int i=1; i<=n; i++)
{
if(js+1<a[i]) //当前数的前面的数不能被表示
{
cout<<js+1;
return 0;
}
else
js+=a[i];//继续扩大边界
}
cout<<js+1;
return 0;
}