```cpp
#include<iostream>
#include<set>
using namespace std;
int n,k;
long long ans;
set<int> s;
int main(){
cin>>n>>k;
ans=(1ll+k)*k/2;
for(int i=1;i<=n;i++){
int t;
cin>>t;
if(t>=1 and t<=k and s.find(t)==s.end()){
ans-=t;
s.insert(t);
}
}
cout<<ans<<endl;
return 0;
}
```
by HappyCode @ 2024-03-23 21:44:59
?为什么要高精度?直接把出现的每个数加起来拿 $\frac{k(k + 1)}{2}$ 减一下不就行了吗?$k$ 反正只有 $1e9$
by forgotmyhandle @ 2024-03-23 21:45:46
@[XYzero](/user/917025) why 高精度?
```cpp
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+5;
ll n,k,ans;
int a[N];
set<int>s;
int main(){
cin.tie(0)->sync_with_stdio(0);
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
s.insert(a[i]);
}
ans=k*(k+1)/2;
for(auto it=s.begin();it!=s.end();it++){
if(*it<=k){
ans-=*it;
}
}
cout<<ans;
return 0;
}
```
by Present_Coming_Time @ 2024-03-23 21:48:39
我蒟了,感谢
by XYzero @ 2024-03-23 21:49:17