| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1237365 | zadniprovska | Trains (BOI24_trains) | C++20 | 22 ms | 1096 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pll pair<ll, ll>
const ll DIM = 1e5 + 7;
const ll mod = 1e9 + 7;
const ll sq = 350;
ll dp[DIM];
map<pll, ll> s;
int main(){
ios::sync_with_stdio(false);cin.tie(nullptr); cout.tie(nullptr);
ll n;
cin >> n;
dp[1] = 1;
for (int i=1; i<=n; i++) {
ll d, x;
cin >> d >> x;
for (auto [p, val] : s) {
if (i%p.first == p.second) {
dp[i] += val;
dp[i] %= mod;
}
}
if (d == 0) continue;
x = min(x, (n-i)/d);
if (x <= sq) {
for (int j=i+d; j<=i + x*d; j+=d) {
dp[j] += dp[i];
dp[j] %= mod;
}
}
else {
s[{d, i%d}] += dp[i];
s[{d, i%d}] %= mod;
}
}
ll answer = 0;
for (int i=1; i<=n; i++) {
answer += dp[i];
answer %= mod;
}
cout << answer << endl;
}
;| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
