Submission #624628

#TimeUsernameProblemLanguageResultExecution timeMemory
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--; } }

Compilation message (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...