이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
const int LN = 1000000007;
int modpow( long long A, long long X )
{
int acc = 1;
while(X)
{
A %= LN;
if(X%2)
acc = (A*acc)%LN;
A = A*A;
X /= 2;
}
return acc;
}
const int size = 100002;
int kinds[size][2];
int main()
{
int N, K;
while( std::cin >> N >> K )
{
int acc = 0;
for( int i = 1; i <= N; ++i )
{
int prev = i%2 ? 0 : 1;
int curr = i%2 ? 1 : 0;
for( int j = 0; j <= i; ++j )
{
if( j == 0 )
{
kinds[j][curr] = 1;
}
else
{
kinds[j][curr] = kinds[j-1][curr] + kinds[j][prev];
}
if( i+j == N )
{
acc += modpow(K, i);
acc %= LN;
}
}
kinds[i+1][curr] = 0;
}
std::cout << acc << std::endl;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |