B-1005

来源:互联网 发布:经济数据指标 编辑:程序博客网 时间:2024/05/16 15:58
#include<cstdio>#include<string.h>#include<algorithm>using namespace std;int is_even(int x){    return (x%2==0) ? 1 : 0;}int buf[105], mark[105];           //buf存数列,mark标记有没有被覆盖,覆盖为1,否则为0int main(){    //freopen("input.txt", "r", stdin);    int k;    while(scanf("%d", &k)==1){        memset(buf, 0, sizeof(buf));  memset(mark, 0, sizeof(mark));        for(int i = 0; i < k; i++) scanf("%d", &buf[i]);        sort(buf, buf+k);        for(int i = 0; i < k; i++)            if(mark[buf[i]]==0){                int x = buf[i];                while(x!=1){                     if(is_even(x)) x/=2;                     else x=(3*x+1)/2;                    if(x<=100) mark[x]=1;                }            }        int first = 0;        for(int i = k-1; i >= 0; i--)            if(mark[buf[i]]==0) {                if(first==0) {printf("%d", buf[i]); first = 1;}                else printf(" %d", buf[i]);            }        printf("\n");    }    return 0;}