stablegradients/pie-gem5-bysrc huggingface dataset:
// Original C++ solution (slower):
#include <bits/stdc++.h>

using namespace std;

int main(){

  long long n;

  list <char> s; 

  cin>>n;

  while(n){

    n--;

    s.push_front('a'+n%26);

    n/=26;

  }

  string ss(s.begin(), s.end());

  cout<<ss<<endl;

  return 0;

}

// Optimized solution to the same problem (faster):
#include<stdio.h>



int main(){

    

    long long int a;

    scanf("%lld",&a);

    

    int i = 0;

    char str[100];

    

    while(a > 0){

        int temp = a % 26;

        

        if(temp == 0){

            str[i++] = 'z';

            a = (a/26) - 1;

        }else{

            str[i++] = (temp - 1) + 'a';

            a = a/26;

        }

    }

    str[i] = '\0';

    



    for(int j = i - 1;j >= 0;j--){

        printf("%c",str[j]);

    }

    

    

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <bits/stdc++.h>

using namespace std;



int main() {

   long long n ;

   cin>>n;

   long long x;

   string S[] ={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};

   vector<string>v;

   while(n != 0){

        x = (n % 26) -1;

        if(x == -1){

            x = 25;

            n--;

        }

       v.push_back( S[x]);

       n /= 26;

   }

 for(reverse_iterator<vector<basic_string<char>>::iterator> it = v.rbegin(); it != v.rend(); it++){

     cout<<*it;

 }

 cout<<endl;



return 0;



}


// Optimized solution to the same problem (faster):
#include<stdio.h>



int main(){

    

    long long int a;

    scanf("%lld",&a);

    

    int i = 0;

    char str[100];

    

    while(a > 0){

        int temp = a % 26;

        

        if(temp == 0){

            str[i++] = 'z';

            a = (a/26) - 1;

        }else{

            str[i++] = (temp - 1) + 'a';

            a = a/26;

        }

    }

    str[i] = '\0';

    



    for(int j = i - 1;j >= 0;j--){

        printf("%c",str[j]);

    }

    

    

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#include <algorithm>

#include <cstring>

#include <string>

#include <cmath>

#include <set>

#include <unordered_set>

#include <vector>

#include<valarray>

#include<map>

#include <utility>

#include <deque>

#include <queue>

using namespace std;



int main()

{

unsigned long long int n;

char c;

string s;

cin>>n;

long long counter=0;

while (n>=26)

{





    if(n%26!=0)

    {

        counter++;

        n--;

    }

     else if(n%26==0&&counter==0)

    {

         s+='z';

         n-=1;

         n/=26;



    }

    else if(n%26==0)

    {





        c =(96+counter);







        s+=c;

        counter=0;

        n/=26;

    }



}



if(n==26)

    s+='a';

else if(n>=1&&n<26) {





    c = (96 + n);

    s += c;

}

reverse(s.begin(),s.end());



cout<<s;





    return 0;

}

// Optimized solution to the same problem (faster):
#include<stdio.h>



int main(){

    

    long long int a;

    scanf("%lld",&a);

    

    int i = 0;

    char str[100];

    

    while(a > 0){

        int temp = a % 26;

        

        if(temp == 0){

            str[i++] = 'z';

            a = (a/26) - 1;

        }else{

            str[i++] = (temp - 1) + 'a';

            a = a/26;

        }

    }

    str[i] = '\0';

    



    for(int j = i - 1;j >= 0;j--){

        printf("%c",str[j]);

    }

    

    

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

int main()

{

   string c="abcdefghijklmnopqrstuvwxyz";

  long long int n;

  cin>>n;

  string s="";

  if(n<=26)

  {

    cout<<c[n-1];

    return 0;

  }

  while(n)

  {

    int x=n%26;

    if(x)

    {

      s=c[x-1]+s;

    }

    else

    {

      s = 'z'+s;

    }

    if(!x)

    {

      n/=26;

      n--;

    }

    else

    {

      n/=26;

    }

  }

  cout<<s<<endl;

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

int main(){

    long long x,i=1,temp=26;

    cin>>x;

    x--;

    while(temp<=x){

        x-=temp;

        temp*=26;

        i++;

    }

    string out="";

    while(i--){

        out=(char)(x%26+'a')+out;

        x/=26;

    }

    cout<<out;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

using ll = long long int;

ll n;

string k;

void displ()

{

	cin>>n;

	while(n){

		k = char(n%26?(n%26)+'a'-1:'z')+k,n--;

	    	n/=26;

	}

	cout<<k<<"\n";

}



int main()

{

	displ();

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#define ll long long

using namespace std;

int main(){

    ll N; scanf("%lld", &N);

    // 26 26 * 26 26 * 26 * 26

    ll pre[12] = {0};

    ll sum = 26;

    for(int i = 1; i <= 11; i++){

        pre[i] = pre[i - 1] + sum;

        sum = sum * 26;

    }

    int cur = 11;

    // pre[i - 1] + 1 ~ pre[i]

    // a = 0

    while(N < pre[cur] + 1){

        cur--;

    }

    N -= pre[cur];

    --N;

    int stk[13];

    for(int i = 1; i <= cur + 1; i++){

        stk[i] = N % 26;

        N /= 26;

    }

    for(int i = cur + 1; i >= 1; i--){

        printf("%c", (char)('a' + stk[i]));

    }

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

typedef long long LL;

LL n;

int s[100000];

int main(){

    scanf("%lld", &n);

    LL x = 0, y = 1, z = 0;

    while(x <= n){

        y *= 26LL;

        x += y;

        ++z;

    }

    x -= y;

    if(n == x){

        for(int i = 1; i < z; i++) cout<<'z';

        cout<<endl;

    }

    else{

        

        int u = 0;

        LL a = n - x - 1LL;

        while(a > 0){

            s[++u] = a % 26LL;

            a /= 26LL;

        }

        for(int i = z; i >= 1; i--) printf("%c", s[i] + 'a');

        cout<<endl;

    }

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<cstdio>

#include<stack>

using namespace std;

long long n;



int main()

{

    while(~scanf("%lld",&n))

    {

        stack<char>p;

        while(n)

        {

            int t=n%26;



            if(n)

            {

            if(t==0)

            p.push('z');

            else

            p.push((char)('a'+t-1));

            }

            n/=26;

            if(!t)

            n--;

        }

        while(!p.empty())

        putchar(p.top()),p.pop();

        putchar('\n');

    }

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#pragma GCC optimize ("O3")

#include<bits/stdc++.h>

using namespace std;







/// Info.

///****************************************************************************************************************************************///

/// author                : BAHAA El-DEEN OSAMA .

/// Problem name          : P - One Quadrillion and One Dalmatians

/// Method                : brute force

/// Online judge          : vjudge(Contest)

/// Date                  : 8/7/2020

///****************************************************************************************************************************************///



typedef long long ll ;

typedef unsigned long long ull ;



ll n;

string str = "";



int main()

{



    cin >> n;

	while (n)

    {

		int s = (n-1) % 26;

		str = (char)('a' + s) + str;

		n = (n-1)/ 26;

	}

	cout << str << endl;



	   return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <bits/stdc++.h>



using namespace std;

typedef long long ll;

ll t , k,n,x , y , a, b,c , d ,sum;

string s;

char ch;

int main()

{

    cin >> n;

    a=26;

    s="";

    while(n>0)

    {

        //n--;

        x=(n-1)%26;

        s+=(x+'a');

        n=(n-1)/26;

    }

    reverse(s.begin(),s.end());

    cout << s;

    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

typedef unsigned long long ull;



int main()

{

    ull n;

    string s="";

    cin>>n;

    while(n>0)

    {

        if(n%26==0)

            {s='z'+s;n-=1;}

        else

            {char x=((n%26)-1)+'a';s=x+s;}



        n/=26;

    }

        cout<<s;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#include <string>

#include <map>

#include <queue>

#include <vector>

#include<algorithm>

#include <set>

#include <stack>

#include <stdlib.h>



using namespace std;



int main()

{

    int long long a,z,p=0;

    char arr[27];

    char arr1[30];

    cin>>a;

    for(int i=1;i<26;i++)

    {

        arr[i]=char(i+96);

    }

    arr[0]='z';

    while(a!=0)

    {

        arr1[p++]=arr[a%26];

        z=a%26;

        if(z==0)

            z=26;

        a-=z;

        a/=26;

    }



    for(int i=p-1;i>=0;i--)

        cout<<arr1[i];

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>



using namespace std;

long long dog;

char a[]={"zabcdefghijklmnopqrstuvwxy"};

int name[13];

int main() {

    cin>>dog;

    int i;

    for ( i=0; dog > 0; i++){

        if (dog%26 == 0) {

            name[i] = 0;

            dog/=26;

            dog--;

        }

        else {

            name[i] = (dog % 26);

            dog /= 26;

        }

    }

    i--;

    for (;i>=0; i--)

        cout<<a[name[i]];

    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <bits/stdc++.h>

using namespace std;

int main()

{

  long long N;

  cin>>N;

  string s;

  char arr[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

  int x=0, y=0,count=0;

  while(true){

    if(N<26){

      

      break;

    }

    else{

      if(N%26!=0){

         N--;

        count++;

      }

      else if(N%26==0 && count==0){

        s+=arr[25];

        N-=1;

        N=N/26;

      }

      else{

        s+=arr[count-1];

        N=N/26;

        count=0;

      }

    }

  }

  if(N==26){

    s+=arr[0];

  }

  else if(N>=1&&N<26){

    s+=arr[N-1];

  }

  

reverse(s.begin(),s.end());

cout<<s;

  return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#include <bits/stdc++.h>



using namespace std;



int main()

{

    string result;

    long long n;

    cin >> n;

    while (n > 0)

    {

        n--;

        result += char(97 + (n % 26));

        n /= 26;

    }

    reverse(result.begin(), result.end());

    cout << result;

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#include <bits/stdc++.h>

#include <stdio.h>



typedef long long ll;

using namespace std;







bool isPrime(ll n){

    if(n < 2){

        return 0;

    }

    if(n%2 == 0){

        return n==2;

    }

    for(ll i=3;i*i<=n;i++){

        if(n%i == 0) return 0;

    }

    return 1;

}



string toBinary(int x){

    string s = "";

    while(x > 0){

        if(x%2) s += "1";

        else s += "0";

        x /= 2;

    }

    string h = "";

    for(int i=s.size();i<31;i++){

        h += "0";

    }

    reverse(s.begin(),s.end());

    //cout<<"x "<<x<<" "<<(h+s)<<endl;

    return (h+s);

}



int toInt(string s){

    int h =0;

    for(int i=s.size()-1;i>=0;i--){

        if(s[i] ==  '1') h += pow(2,i);

    }

    return h;

}

int main() {

  // int n,m;

   //freopen("test.txt","w",stdout);

//   while(cin>>n){

//       cin>>m;

//       vector<int> v(n);

//       ll maxy = 0;

//       ll miny = 10e10;

//       for(int i=0;i<n;i++) { cin >> v[i];maxy= max(maxy,(ll)v[i]); }

//       int h = n-m+1;

//      // vector<int> vv;

//       ll k = 0;

//       int nn = 0;

//        int prevIndx = 0;

//        for(int i=0;i<h;i++) k += v[i];

//       for(int i=h;i<n;i++){

//          /* int j = i+1;

//            k += v[i];

//            nn++;

//           while(j<n && nn < h){

//               k += v[j];

//               j++;

//               nn++;

//           }

//         //  vv.push_back(k);

//         if(k < miny) miny = k;

//           k -= v[prevIndx];

//           i = j-1;

//           prevIndx++;

//           nn--;

//           */

//           if(k < miny) miny = k;

//           k -= v[prevIndx];

//           prevIndx++;

//           k += v[i];

//

//       }

//       cout<<max(miny,maxy)<<endl;

//

//   }

    ios_base::sync_with_stdio(false);

    cin.tie(0);

ll n;

cin>>n;

int indx= 1;

string s = "";

while(n > 0){

    n--;

    s += ('a'+(n%26));

    n /= (26);

}

reverse(s.begin(),s.end());

cout<<s<<endl;

return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int banyakAnjing;

    scanf("%lld",&banyakAnjing);

 

    char name[100];

    int a=0;

    

    while(banyakAnjing!=0){

        banyakAnjing--;

        int b = banyakAnjing%26;

        name[a] ='a'+ b;

        banyakAnjing/=26;

        a++;

    }

    for(int j=a-1;j>=0;j--)	{

        printf("%c",name[j]);

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
    #include <bits/stdc++.h>

    #include <ext/pb_ds/assoc_container.hpp>

    using namespace __gnu_pbds;

    using namespace std;

     

    typedef long long ll;

    typedef tree<int,null_type,less<int>,rb_tree_tag,

    		tree_order_statistics_node_update> indexed_set;

     

    #define br printf("\n")

     

    string solve(ll num) {

    	ll ch = 26;

    	ll len = 0;

    	while (num > ch) {

    		num -= ch;

    		ch *= 26;

    		len++;

    	} len += 1;

    	num--;

    	string str = "";

    	while (len--) {

    		ll rem = num % 26;

    		num /= 26;

    		str += (char)(rem + 'a');

    	}

    	reverse(str.begin(), str.end());

    	return str;

    }

    		

     

    int main () {

    	ios::sync_with_stdio(1);

    	cin.tie(0);

     

    //	freopen("input.txt", "r", stdin);

    //	freopen("output.txt", "w", stdout);

     

    	ll num;

    	cin >> num;

    	cout << solve(num) << '\n';

    	return 0;

    }

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int x;

    scanf("%lld",&x);

 

    char name[100];

    int i=0;

    

    while(x!=0){

        x--;

        int b = x%26;

        name[i] ='a'+ b;

        x/=26;

        i++;

    }

 

    for(int k=i-1;k>=0;k--){

        printf("%c",name[k]);

    }

    

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <cstdio>

#include <iostream>

#include <algorithm>

#include <cstring>

using namespace std;



const int maxn = 2e5+100;



long long res,bs=26;

char ans[maxn];

int main()

{

	ios::sync_with_stdio(false);

	cin>>res;

	int cnt=0;

	while(res)

	{

		long long ip = res%bs;

		res/=bs;

		if(ip==0) ip=26,res--;

		char op = 'a'+ip-1;

		ans[++cnt]=op;

		//cout<<ip<<endl;

	}

	for(int i=cnt;i>=1;i--) cout<<ans[i];

	cout<<endl;

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

 

int main(){

    long long int x;

    scanf("%lld",&x);

 

    char name[100];

    int i=0;

    

    while(x!=0){

        x--;

        int b = x%26;

        name[i] ='a'+ b;

        x/=26;

        i++;

    }

 

    for(int k=i-1;k>=0;k--){

        printf("%c",name[k]);

    }

    

    return 0;

}

// Fastest known solution for this problem: