Submission #1000130

# Submission time Handle Problem Language Result Execution time Memory
1000130 2024-06-16T17:18:31 Z OAleksa Trains (BOI24_trains) C++14
34 / 100
88 ms 3160 KB
#include <bits/stdc++.h>
#define f first
#define s second
#define int long long
using namespace std;
const int N = 1e5 + 69;
const int B = 320;
const int mod = 1e9 + 7;
int n, d[N], x[N], dp[N];
vector<int> cnt[B];
int add(int x, int y) {
	x += y;
	if (x >= mod)
		x -= mod;
	return x;
}
signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int tt = 1;
	//cin >> tt;
	while (tt--) {
		cin >> n;
		for (int i = 1;i <= n;i++)
			cin >> d[i] >> x[i];
		for (int i = 1;i < B;i++)
			cnt[i].resize(i);
		dp[1] = 1;
		for (int i = 1;i <= n;i++) {
			if (d[i] >= B) {
				for (int j = i + d[i], j1 = 1;j <= n && j1 <= x[i];j += d[i], j1++) 
					dp[j] = add(dp[j], dp[i]);
			}
			else {
				for (int j = 1;j < B;j++) {
					int x = i % j;
					dp[i] = add(dp[i], cnt[j][x]);
				}
				if (d[i] != 0)
					cnt[d[i]][i % d[i]] = add(cnt[d[i]][i % d[i]], dp[i]);
			}
		}
		int ans = 0;
		for (int i = 1;i <= n;i++)
			ans = add(ans, dp[i]);
		cout << ans;
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2904 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2904 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2908 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 42 ms 2904 KB Output is correct
2 Correct 35 ms 2904 KB Output is correct
3 Correct 88 ms 3160 KB Output is correct
4 Correct 62 ms 3080 KB Output is correct
5 Correct 1 ms 2908 KB Output is correct
6 Correct 1 ms 2904 KB Output is correct
7 Correct 10 ms 2908 KB Output is correct
8 Correct 86 ms 3104 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2904 KB Output isn't correct
2 Halted 0 ms 0 KB -