JAG 夏合宿 2015 Day2 B: 監獄

解法

N回目に [0, k-2] の人は N-1 回目には +1 した位置に、[k-1, 2*k-3] の人は +2 した位置にいるので、遡っていけば良い。

コード

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

int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);

  ll N, k;
  cin >> N >> k;
  ll pos = 0;
  for (int i = 0; i < N - 1; ++i) {
    ll add = (pos) / (k - 1) + 1;
    pos += add;
  }
  cout << pos << endl;
}