求求大佬们看一下吧 qwq~
用了两个set,但不知道怎么过不了。
#include<iostream>
#include<set>
#include<cmath>
using namespace std;
typedef long long ll;
ll x[100];
ll a,b;
int main(){
for(int i=1;i<35;i++){
x[i]=pow(2,i);
}
multiset<ll>s;
multiset<ll>q;
cin>>a;
for(ll i=0;i<a;i++){
cin>>b;
bool cnt=false;
for(ll j=0;j<35;j++){
if(s.count(x[j]-b)){
q.insert(x[j]-b);
q.insert(b);
s.erase(x[j]-b);
cnt=true;
break;
}
if(q.count(x[j]-b)){
q.insert(b);
cnt=true;
break;
}
}
if(!cnt){
s.insert(b);
cnt=false;
}
}
cout<<s.size()<<endl;
return 0;
}