第二个测试点没过

P3612 [USACO17JAN] Secret Cow Code S

zz84951901 @ 2021-10-02 15:01:56

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
    string a;
    cin >> a;
    long long n,res;
    cin >> n;
    res = n;
    int alen = a.size(),cnt=0;
    while(alen*pow(2,cnt) < n)
    {
        cnt++;
    }
    while(res > alen)
    {
        if (n > alen*pow(2,cnt)/2 + 1)
        {
            res = n - alen*pow(2,cnt)/2-1;  
        }
        if (n == alen*pow(2,cnt)/2 + 1)
        {
            res = alen*pow(2,cnt)/2 ;
        }
        n = res;
        cnt--;
    }
    cout << a[res-1] << endl;
    return 0;
 } 

|