Codeforces Round #419 (Div. 1), problem: (E) Karen and Neighborhood Solution In C/C++

#include <bits/stdc++.h>
using namespace std;

typedef pair<long long,long long> ii;

long long n,k,i,w,res;
long long m[65];
map <long long,long long> num,f,c;

long long get(long long t) {
if (f[t]>=0) return f[t];
f[t]=get((t-1)/2)+get(t/2);
if (c[t]==1) f[t]++;
return f[t];
}

void cal(long long t) {
if (c[t]==1) k–;
if (k==0) {
res+=(t-1)/2+1;
return;
}

if (f[(t-1)/2]>=k) cal((t-1)/2);
else {
res+=t-(t/2);
k-=f[(t-1)/2];
cal(t/2);
}
}

int main() {
#ifndef ONLINE_JUDGE
freopen(“815E.inp”,”r”,stdin);
freopen(“815E.out”,”w”,stdout);
#endif // ONLINE_JUDGE

scanf(“%lld %lld”,&n,&k);

if (k==1) {
printf(“1”);
return 0;
}
if (k==2) {
printf(“%lld”,n);
return 0;
}

k-=2; n-=2;

for (i=1;i<=60;i++) {
if (i==1) {
m[1]=n;
num[n]=1;
}
else {
m[i]=(m[i-1]-1)/2;
num[m[i]]+=num[m[i-1]];
num[m[i-1]/2]+=num[m[i-1]]+num[m[i-1]+1];
num[m[i]+1]+=num[m[i-1]+1];
}
f[m[i]]=-1; f[m[i]+1]=-1;
if (m[i]==0) break;
}
num[0]=0;
num[1]+=num[2];
num[2]=0;

for (i=1;i<=60;i++) {
if (k<=num[m[i]]+num[m[i]+1]) {
if (m[i]%2==1) {
c[m[i]]=1;
c[m[i]+1]=1;
}
else {
if (k<=num[m[i]+1]) c[m[i]+1]=1;
else c[m[i]]=1,k-=num[m[i]+1];
}
break;
}
else k-=num[m[i]]+num[m[i]+1];
}
if (c[1]==1) c[2]=1;
f[0]=0;
get(n);
cal(n);
printf(“%lld”,res+1);
}

Why Pet Travel Gear...

📢 As an Amazon Associate, I earn from qualifying...

Mall Together-TENOKE

Simulation gaming enthusiasts have a fresh operational challenge to...

7 Reasons This Coffee...

📢 As an Amazon Associate, I earn from qualifying...

Why Kitchen Organization Tools...

📢 As an Amazon Associate, I earn from qualifying...

Is Dorm Room Hacks...

📢 As an Amazon Associate, I earn from qualifying...

Stop Buying Cheap Alternatives...

📢 As an Amazon Associate, I earn from qualifying...

Why Pet Travel Gear Is Currently Breaking the Internet

📢 As an Amazon Associate, I earn from qualifying purchases.After putting the Pet Travel Gear through a proper 30-day real-world test, I can tell...

Mall Together-TENOKE

Simulation gaming enthusiasts have a fresh operational challenge to tackle with the arrival of Mall Together-TENOKE. This brand-new release delivers an immersive shopping mall...

7 Reasons This Coffee Bar Accessories Is Worth Every Single Penny

📢 As an Amazon Associate, I earn from qualifying purchases.There comes a point when you realise that tolerating a frustrating situation is costing you...

Why Kitchen Organization Tools Is Currently Breaking the Internet

📢 As an Amazon Associate, I earn from qualifying purchases.There comes a point when you realise that tolerating a frustrating situation is costing you...

Is Dorm Room Hacks Worth Your Money Here Is Our Full Review

📢 As an Amazon Associate, I earn from qualifying purchases.If you had told me six months ago that a single purchase would change how...

Stop Buying Cheap Alternatives This Camping Essentials Is the Real Deal

📢 As an Amazon Associate, I earn from qualifying purchases.There comes a point when you realise that tolerating a frustrating situation is costing you...

Everything You Need to Know About Outdoor Patio Tech Right Now

📢 As an Amazon Associate, I earn from qualifying purchases.I'll be honest — I was skeptical at first. My daily routine had a gap...

Why Bathroom Organization Hacks Is Currently Breaking the Internet

📢 As an Amazon Associate, I earn from qualifying purchases.I'll be honest — I was skeptical at first. My daily routine had a gap...

Why Electric Cleaning Tools Is Currently Breaking the Internet

📢 As an Amazon Associate, I earn from qualifying purchases.💰 Official Price: Check on Amazon🌟 Why Buy the Electric Cleaning Tools?The Electric Cleaning Tools...