Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
57498 | heaksicn | S2 | C++ | 通过 | 100 | 0 MS | 260 KB | 796 | 2022-10-04 11:30:01 |
#include<bits/stdc++.h> using namespace std; inline int read(){ int X=0,w=0; char ch=0; while(!isdigit(ch)) {w|=ch=='-';ch=getchar();} while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar(); return w?-X:X; } inline void write(int x){ if(x<0) putchar('-'),x=-x; if(x>9) write(x/10); putchar(x%10+'0'); } int a[100001]; map <int,int> mp; int main(){ int T=read(),d=read(),l=read(); while(T--){ mp.clear(); int x=read(); int ans=0; a[0]=x; while(x!=0&&x!=1&&x!=-1&&x!=-5&&x!=-17){ if(x%2) x=x*3+1; else x/=2; a[++ans]=x; } while(x<=0) x+=d,a[++ans]=x; while(x!=1){ if(x%2) x=x*3+1; else x/=2; a[++ans]=x; } cout<<ans<<" "; for(int i=ans;i>=0;i--) cout<<a[i]<<" "; cout<<endl; } return 0; }