一个又快又小的方法
2026-08-03 20:37:37
发布于:浙江
6阅读
0回复
0点赞
使用桶排+快读快写即可,代码如下:
#include<stdio.h>
short n,x,mx,mi=101,cnt;
bool a[1001];
inline void scan(short& o){
o=0;
char ch;
while(1){
ch=getchar();
if(ch!=' ' && ch!=EOF && ch!='\n')
break;
}
while(1){
o*=10;
o+=ch-'0';
ch=getchar();
if(ch==' ' || ch==EOF || ch=='\n')
break;
}
}
inline void dfs(short o){
if(o==0)
return;
dfs(o/10);
putchar(o%10+'0');
}
inline void print(short o){
if(!o)
putchar('0');
dfs(o);
}
inline void ma(short& m,short o){
if(o>m)
m=o;
}
inline void mn(short& m,short o){
if(o<m)
m=o;
}
int main(){
scan(n);
cnt=n;
while(n--){
scan(x);
ma(mx,x);
mn(mi,x);
if(a[x])
cnt--;
a[x]=1;
}
print(cnt);
putchar('\n');
while(mi<=mx){
if(a[mi]){
print(mi);
putchar(' ');
}
mi++;
}
}
这里空空如也








有帮助,赞一个