#include <iostream>
#include <unordered_set>
using namespace std;
unordered_set<int> appear0;
unordered_set<int> appear1;
int main(){
int n;
cin >> n;
unordered_set<int>* p=&appear0,*p1=&appear1;
for(int i=1;i<=n;i++){
int w;
cin >> w;
(*p1).insert(w);
for(int i:*p){
(*p1).insert(i);
(*p1).insert(i+w);
(*p1).insert(i-w);
}
unordered_set<int>* p2=p;
p=p1;
p1=p2;
}
unordered_set<int> ans;
for(int i:*p) if(i!=0) ans.insert(abs(i));
cout << ans.size();
}
这个时间复杂度应该是O(n)吧,思路有问题吗,为什么我在题解没看到相关解法