Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<fstream>
- #include<cmath>
- using namespace std;
- ifstream fin("stele.in");
- ofstream fout("stele.out");
- int a[30];
- char s[30];
- char sir[425];
- int big[100], nr=1;
- int sum[100], inm[100], nr1;
- void Produs(int x)
- {
- int i, y, tr=0;
- for(i=1;i<=nr1;i++)
- {
- y=inm[i]*x+tr;
- inm[i]=y%10;
- tr=y/10;
- }
- while(tr)
- {
- inm[++nr1]=tr%10;
- tr/=10;
- }
- }
- void Adun()
- {
- int i, tr=0,x;
- int nc=max(nr, nr1);
- for(i=1;i<=nc;i++)
- {
- x=inm[i]+sum[i]+tr;
- if(x>=10) tr=1, big[i]=x-10;
- else tr=0, big[i]=x;
- }
- if(tr==1)big[++nc]=1;
- nr=nc;
- }
- int main()
- {
- int cer, i,n,cnt,g;
- long long q=0;
- for(i=1;i<=26;i++)
- {
- a[i]=(1<<(i-1));
- s[i]=i+'a'-1;
- }
- fin>>cer;
- if(cer==1)
- {
- fin>>n;
- for(i=26;i>=1;i--)
- {
- if(a[i]<=n)
- {
- cnt=0;
- while(a[i]<=n) n-=a[i], cnt++;
- if(cnt>1){sir[q+2]=cnt;}
- sir[++q]=s[i];
- if(n==0)break;
- }
- }
- for(i=q;i>=1;i--)fout<<sir[i];
- }
- else{
- fin>>n;
- for(int j=1;j<=n;j++)
- {
- fin>>sir;
- for(i=0;sir[i];i++)
- {
- q=0;
- while(sir[i]>='0' && sir[i]<='9')
- {
- q*=10;
- q+=(sir[i]-'0');
- i++;
- }
- if(q==0) q=1;
- g=sir[i]-'a'+1;
- nr1=log10(q)+1;///cate cifre are q
- int x=1;
- while(q)
- {
- inm[x++]=q%10;
- q/=10;
- }
- Produs(a[g]);
- for(int u=1;u<=nr;u++)
- {
- sum[u]=big[u];
- big[u]=0;
- }
- Adun();
- for(int u=1;u<=100;u++)inm[u]=0;
- }
- }
- for(i=nr;i>=1;i--)
- fout<<big[i];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement