Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
57444 | mod998244353 | S2 | C++ | 通过 | 100 | 1 MS | 252 KB | 614 | 2022-10-04 11:09:26 |
#include<bits/stdc++.h> #define ll long long using namespace std; int Q; ll D,L; stack<ll>st; inline void make(ll x){ st.push(x); while(x!=1){ if(x%2==1)x=3*x+1; else x/=2; st.push(x); } } int main(){ scanf("%d%lld%lld",&Q,&D,&L); while(Q--){ ll n; scanf("%lld",&n); while(n<0){ st.push(n); if(min(fabs(n),fabs(n+D))<=L&&(-n)/D<=1000)n+=D; else if(n%2==-1)n=3*n+1; else n/=2; } if(n>0)make(n); if(n==0){ st.push(0); make(D); } printf("%d ",st.size()-1); while(!st.empty())printf("%d ",st.top()),st.pop(); puts(""); } return 0; }