b
user_8384735
c_cpp
3 years ago
1.0 kB
6
Indexable
// B.cpp solve1
#include<iostream>
using namespace std;
typedef long long LL;
LL path[5] = {1,2,3,4,5};
int main(){
LL n;
cin >> n;
string s = "abcde";
LL x = 2;
for (int i = 1; path[4] < n; i++){
for (int j = 0; j < 5; j++){
if (j){
path[j] = path[j - 1] + x;
}else {
path[0] = path[4] + x;
}
}
x <<= 1;
}
for (int i = 0; i < 5; i++){
if (path[i] >= n){
cout << s[i];
return 0;
}
}
}
// solve2
#include <iostream>
using namespace std;
int main () {
int n, sum = 5, t = 1;
cin >> n;
while(1) {
if (n - sum <= 0) {
if (n == 0) {
cout << "e";
break;
}
if (n % t == 0) n = n / t - 1;
else n = n / t;
cout << (char)(n + 'a');
break;
}
else {
t *= 2 ;
n -= sum;
sum *= 2;
}
}
return 0;
}Editor is loading...