九度 1402 特殊的数
bitset<100> bs 100表示bs有100位
bs.count() 表示二进制位为1的个数
bs.set() 把所有二进制位都置为1
bs.reset() 把所有二进制位都置为0
#include<iostream>
#include<bitset>
#include<cstdio>
#include<stdlib.h>
int max(int x,int y)
{
return x>y?x:y;
}
int min(int x,int y)
{
return x<y?x:y;
}
using namespace std;
const int MAXN=1000002;
const int INF=0x7f7f7f7f;
int x,n;
bitset<MAXN> b0,b1;
int main()
{
int i;
while(scanf("%d",&n)!=EOF)
{
b0.reset();
b1.reset();
int maxx=-1,minx=INF;
for(i=0;i<n;++i)
{
scanf("%d",&x);
maxx=max(maxx,x);
minx=min(minx,x);
if(b0[x]==0)
{
b0[x]=1;
}
else
b1[x]=1;
}
int len=b0.count()-b1.count();
printf("%d\n",len);
//if(!len)
//continue;
bool sign=false;
for(i=minx;i<=maxx;++i)
{
if(b0[i]==1&&b1[i]==0)
{
if(sign)
printf(" %d",i);
else
{
printf("%d",i);
sign=true;
}
}
}
if(len)
printf("\n");
}
return 0;
}

浙公网安备 33010602011771号