Numbers HDU

来源:互联网 发布:python xgboost 编辑:程序博客网 时间:2024/05/21 15:04

https://vjudge.net/problem/HDU-6168
题意:
如果我们现在有一个数组A【1····n】,那么我们每一次拿出两个数A【i】和A【j】(1≤i

int ans[N];int a[N];int vis[N];map<int,int>mp;int main(){    int n;    while(~sf("%d",&n)){        mem(vis,0);        rep(i,1,n){sf("%d",&a[i]);}        sort(a+1,a+1+n);        int cnt=0;        for(int i=1;i<=n;++i){            if(mp[a[i]]){                mp[a[i]]--;            }            else{                for(int j=1;j<=cnt;++j){                    mp[ans[j]+a[i]]++;                }                ans[++cnt]=a[i];            }        }        pf("%d\n",cnt);        for(int i=1;i<=cnt;++i){            pf("%d%c",ans[i],i==cnt?'\n':' ');        }    }}
原创粉丝点击