Submission #1303359

#TimeUsernameProblemLanguageResultExecution timeMemory
1303359khanhgngTrains (BOI24_trains)C++20
16 / 100
157 ms5716 KiB
#include<bits/stdc++.h> #define ll long long #define int long long #define ld long double #define pb push_back #define pii pair<int, int> #define fi first #define se second #define bit(i, x) ((x >> i) & 1) #define SZ(x) ((int)(x.size())) #define FOR(i, a, b) for (int i = (a); i <= (b); ++i) #define FORD(i, a, b) for (int i = (a); i >= (b); --i) #define task "test" using namespace std; mt19937 rd(chrono::steady_clock::now().time_since_epoch().count()); ll Rand(ll l, ll r) { assert(l <= r); return uniform_int_distribution<ll>(l, r)(rd); } const int MAXn = 2e5+10; const int MX = 1e5+10; const ll INF = (long long)(1e18); const int MOD = 1e9+7; const int BASE = 3137; const int BL = 350; int n,d[MAXn],x[MAXn],dp[MAXn]; int f[BL+5][BL+5]; vector<int>vec[MAXn]; void solution() { cin>>n; FOR(i,1,n){ cin>>d[i]>>x[i]; } dp[1]=1; FOR(i,1,n){ /// for(int j:vec[i]){ f[d[j]][(j+d[j])%d[j]]-=dp[j]; f[d[j]][(j+d[j])%d[j]]+=MOD; f[d[j]][(j+d[j])%d[j]]%=MOD; } if(d[i]>=BL){ FOR(j,1,x[i]){ dp[j*d[i]+i]+=dp[i]; dp[j*d[i]+i]%=MOD;; } } else { FOR(j,1,BL){ dp[i]+=f[j][i%j]; dp[i]%=MOD; } if(d[i]==0||x[i]==0)continue; f[d[i]][(i+d[i])%d[i]]+=dp[i]; f[d[i]][(i+d[i])%d[i]]%=MOD; if(d[i]*x[i]+i+1<=n)vec[d[i]*x[i]+i+1].pb(i); } } int rs=0; FOR(i,1,n){ rs+=dp[i]; rs%=MOD; } cout << rs; } int32_t main() { if (fopen(task".inp", "r")){freopen(task".inp", "r", stdin);freopen(task".out", "w", stdout);} ios::sync_with_stdio(0); cin.tie(0); int ntest = 1; /// cin >> ntest; while (ntest--) solution(); cerr << "\n" << 1.0 * clock() / CLOCKS_PER_SEC << "s "; }

Compilation message (stderr)

Main.cpp: In function 'int32_t main()':
Main.cpp:74:40: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |     if (fopen(task".inp", "r")){freopen(task".inp", "r", stdin);freopen(task".out", "w", stdout);}
      |                                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:74:72: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |     if (fopen(task".inp", "r")){freopen(task".inp", "r", stdin);freopen(task".out", "w", stdout);}
      |                                                                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...