Advertisement
nicuvlad76

Untitled

Dec 10th, 2022
840
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. #include<fstream>
  2. #include<cmath>
  3. using namespace std;
  4. ifstream fin("stele.in");
  5. ofstream fout("stele.out");
  6. int a[30];
  7. char s[30];
  8. char sir[425];
  9. int big[100], nr=1;
  10. int sum[100], inm[100], nr1;
  11. void Produs(int x)
  12. {
  13.     int i, y, tr=0;
  14.     for(i=1;i<=nr1;i++)
  15.     {
  16.         y=inm[i]*x+tr;
  17.         inm[i]=y%10;
  18.         tr=y/10;
  19.     }
  20.     while(tr)
  21.     {
  22.         inm[++nr1]=tr%10;
  23.         tr/=10;
  24.     }
  25. }
  26. void Adun()
  27. {
  28.     int i, tr=0,x;
  29.     int nc=max(nr, nr1);
  30.     for(i=1;i<=nc;i++)
  31.     {
  32.         x=inm[i]+sum[i]+tr;
  33.         if(x>=10) tr=1, big[i]=x-10;
  34.         else tr=0, big[i]=x;
  35.     }
  36.     if(tr==1)big[++nc]=1;
  37.     nr=nc;
  38. }
  39. int main()
  40. {
  41.   int cer, i,n,cnt,g;
  42.   long long q=0;
  43.   for(i=1;i<=26;i++)
  44.   {
  45.       a[i]=(1<<(i-1));
  46.       s[i]=i+'a'-1;
  47.   }
  48.   fin>>cer;
  49.   if(cer==1)
  50.   {
  51.       fin>>n;
  52.       for(i=26;i>=1;i--)
  53.       {
  54.           if(a[i]<=n)
  55.           {
  56.               cnt=0;
  57.               while(a[i]<=n) n-=a[i], cnt++;
  58.               if(cnt>1){sir[q+2]=cnt;}
  59.               sir[++q]=s[i];
  60.               if(n==0)break;
  61.           }
  62.       }
  63.       for(i=q;i>=1;i--)fout<<sir[i];
  64.   }
  65.   else{
  66.     fin>>n;
  67.     for(int j=1;j<=n;j++)
  68.     {
  69.         fin>>sir;
  70.         for(i=0;sir[i];i++)
  71.         {
  72.             q=0;
  73.             while(sir[i]>='0' && sir[i]<='9')
  74.             {
  75.                 q*=10;
  76.                 q+=(sir[i]-'0');
  77.                 i++;
  78.             }
  79.             if(q==0) q=1;
  80.             g=sir[i]-'a'+1;
  81.             nr1=log10(q)+1;///cate cifre are q
  82.             int x=1;
  83.             while(q)
  84.             {
  85.                 inm[x++]=q%10;
  86.                 q/=10;
  87.             }
  88.             Produs(a[g]);
  89.             for(int u=1;u<=nr;u++)
  90.             {
  91.                 sum[u]=big[u];
  92.                 big[u]=0;
  93.             }
  94.             Adun();
  95.             for(int u=1;u<=100;u++)inm[u]=0;
  96.         }
  97.     }
  98.     for(i=nr;i>=1;i--)
  99.         fout<<big[i];
  100.   }
  101.   return 0;
  102. }
  103.  
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement