Language: C++

#include <iostream>
#include <vector>
#include <set>
#include <regex>

using namespace std;

#define FOR(i, a, b) for (auto i = (a); i < (b); ++i)
#define REP(i, n) FOR(i, 0, n)
#define DEBUG(_debuged) cerr << #_debuged << ":" << _debuged << endl;

struct L
{
	int t;
	int x;
	int y;
};

vector<int> loadn(int n)
{
	vector<int> v(n);
	REP(i, n)
		cin >> v[i];
	return v;
}

uint64_t modpower(const unsigned int N, const unsigned int K, const unsigned int MOD)
{
	uint64_t ret = 1;
	uint64_t k2 = N;
	REP(i, 31)
	{
		if ((K >> i) & 0x1)
		{
			ret *= k2;
			ret = ret % MOD;
		}
		k2 = (k2 * k2) % MOD;
	}
	return ret;
}

class ModCombinationMemo
{
public:
	const unsigned int N;
	const unsigned int MOD;
	vector<uint64_t> memo = { 1 };

	ModCombinationMemo(uint32_t N, uint32_t MOD)
		: N(N), MOD(MOD)
	{
	}

	uint64_t c(uint64_t k)
	{
		if (memo.size() > k)
		{
			return memo[k];
		}

		FOR(i, memo.size(), k + 1)
		{
			const auto number = (memo[i - 1] * (N - i + 1)) % MOD;
			const auto reverceDeon = modpower(i, MOD - 2, MOD);
			memo.push_back(number * reverceDeon % MOD);
		}

		return memo[k];
	}
};

uint64_t c(const unsigned int N, const unsigned int K, const unsigned int MOD)
{
	if (K == 0)
	{
		return 1;
	}

	uint64_t n = 1, k = 1;

	REP(i, K)
	{
		n *= N - i;
		k *= i + 1;

		n = n % MOD;
		k = k % MOD;
	}

	uint64_t powerk = modpower(k, MOD - 2, MOD);

	return (n * powerk) % MOD;
}

unsigned trailing_zeros(unsigned n)
{
	if (!n)
		return -1;
	unsigned int c = 32; // c will be the number of zero bits on the right
	n &= -(signed)n;
	if (n)
		c--;
	if (n & 0x0000FFFF)
		c -= 16;
	if (n & 0x00FF00FF)
		c -= 8;
	if (n & 0x0F0F0F0F)
		c -= 4;
	if (n & 0x33333333)
		c -= 2;
	if (n & 0x55555555)
		c -= 1;
	return c;
}

unsigned int digitssum(uint64_t source) {
	int result = 0;

	while (source > 0) {
		result += source % 10;
		source /= 10;
	}

	return result;
}

struct oishisa
{
	int64_t x;
	int64_t y;
	int64_t z;
};

int64_t cint()
{
	int64_t i;
	cin >> i;
	return i;
}

int main(int argc, char *argv[], char *envp[])
{
	const int64_t N(cint());
	const int64_t K(cint());

	vector<int> A;
	REP(i, N) {
		A.push_back(cint());
	}

	cout << ceil(double(N - 1) / (K - 1)) << endl;
}
/*

int main(int argc, char *argv[], char *envp[])
{
	int i = 0;
	REP(n, 4) {
		char sign;
		cin >> sign;
		i += (sign == '+' ? +1 : -1);
	}
	cout << i;
}
/*
int main(int argc, char *argv[], char *envp[])
{
	const int K(cint());

	
	int result = 0;
	
	for (uint64_t target = 1; result < K; target++) {
		FOR(s, 1, 127) {
			int minimum = target + 1;
			while(digitssum(minimum) != s) {
				minimum += 
			}

			if (target * digitssum(minimum) > minimum * digitssum(target)) {
				goto b;
			}
		}

		cout << target << endl;
		result++;

	b:;
		
	}

	return 0;
}
*/

Compiler output:
a.cc:27:1: error: 'uint64_t' does not name a type
   27 | uint64_t modpower(const unsigned int N, const unsigned int K, const unsigned int MOD)
      | ^~~~~~~~
a.cc:5:1: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
    4 | #include <regex>
  +++ |+#include <cstdint>
    5 | 
a.cc:48:16: error: 'uint64_t' was not declared in this scope
   48 |         vector<uint64_t> memo = { 1 };
      |                ^~~~~~~~
a.cc:48:16: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
a.cc:48:24: error: template argument 1 is invalid
   48 |         vector<uint64_t> memo = { 1 };
      |                        ^
a.cc:48:24: error: template argument 2 is invalid
a.cc:50:36: error: expected ')' before 'N'
   50 |         ModCombinationMemo(uint32_t N, uint32_t MOD)
      |                           ~        ^~
      |                                    )
a.cc:55:9: error: 'uint64_t' does not name a type
   55 |         uint64_t c(uint64_t k)
      |         ^~~~~~~~
a.cc:55:9: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
a.cc:73:1: error: 'uint64_t' does not name a type
   73 | uint64_t c(const unsigned int N, const unsigned int K, const unsigned int MOD)
      | ^~~~~~~~
a.cc:73:1: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
a.cc:117:24: error: 'uint64_t' was not declared in this scope
  117 | unsigned int digitssum(uint64_t source) {
      |                        ^~~~~~~~
a.cc:117:24: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
a.cc: In function 'int main(int, char**, char**)':
a.cc:152:17: error: 'ceil' was not declared in this scope
  152 |         cout << ceil(double(N - 1) / (K - 1)) << endl;
      |                 ^~~~