제출 #624628

#제출 시각아이디문제언어결과실행 시간메모리
624628BlagojRack (eJOI19_rack)C++14
0 / 100
1 ms212 KiB
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long int ull;
typedef long long int ll;
typedef long double ld;
int main()
{
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);
    ull n, k, mod = 1000000007;
    cin >> n >> k;
    ull dp[n + 1];
    dp[0] = 1;
    for (int i = 1; i <= n; i++)
    {
        dp[i] = (dp[i - 1] * 2) % mod;
    }
    vector<ull> v = {1, dp[n - 1] + 1};
    ull sum = n - 2;
    if (k == 1)
    {
        cout << 1;
        return 0;
    }
    if (k == 2)
    {
        cout << v[1];
        return 0;
    }
    while (sum > 0)
    {
        ull sz = v.size();
        for (ull i = 0; i < sz; i++)
        {
            if ((i + 1) + sz == k)
            {
                cout << (ull)(v[i] + dp[sum]) % mod;
                return 0;
            }
            if (sum > 1)
            {
                v.push_back((v[i] + dp[sum]) % mod);
            }
        }
        sum--;
    }
}

컴파일 시 표준 에러 (stderr) 메시지

rack.cpp: In function 'int main()':
rack.cpp:15:23: warning: comparison of integer expressions of different signedness: 'int' and 'ull' {aka 'long long unsigned int'} [-Wsign-compare]
   15 |     for (int i = 1; i <= n; i++)
      |                     ~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...