提交时间:2024-09-15 14:11:15

运行 ID: 32587

#include<bits/stdc++.h> #define int long long using namespace std; int L[25]; const int maxn=1e3+7; string OP(int x){ for(int i=0;i<25;i++)L[i]=0; int cnt=-1; while(x){ L[++cnt]=x&1; x>>=1; } string s="1"; for(int i=cnt-1;i>=0;i--){ if(L[i]==1)s=s+"c+1+"; else s=s+"c+"; } return s; } int pl(string s){ int L=s.length(); int cnt=0; for(int i=0;i<L;i++)cnt+=(s[i]=='+'); return cnt; } int n; int b[maxn]; string ANS=""; signed main(){ cin>>n; for(int i=1;i<=n;i++)cin>>b[i]; int cnt=0; for(int i=n;i>=1;i--){ string s=OP(b[i]+cnt); ANS=s+ANS; cnt+=pl(s); } cout<<ANS<<endl; return 0; }