Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
67813 | Ender | 集合 | C++ | 解答错误 | 90 | 0 MS | 244 KB | 619 | 2023-01-19 17:22:52 |
#include <iostream> #include <cstdio> using namespace std; int main() { //freopen("set.in","r",stdin); //freopen("set.out","w",stdout); unsigned long long n,k,p,m = 0,Pow = 1,ans; cin>>n>>k>>p; while(Pow <= n) { m++; Pow*=k; } m--; Pow/=k; if((n - Pow) % (k - 1) == 0) ans = ((Pow * k - 1) / (k - 1) - 1) + ((n - Pow) / (k - 1) * k * (p - m)) + ((Pow - (n - Pow) / (k - 1)) * (p - m)); else ans = ((Pow * k - 1) / (k - 1) - 1) + ((n - Pow) / (k - 1) * k * (p - m)) + (((n - Pow) % (k - 1) + 1) * (p - m)) + ((Pow - (n - Pow) / (k - 1) - 1) * (p - m)); cout<<ans; return 0; }