Submission #1033578

#TimeUsernameProblemLanguageResultExecution timeMemory
1033578BuiDucManh123Trains (BOI24_trains)C++14
21 / 100
2062 ms3208 KiB
#include <bits/stdc++.h> #define fi first #define se second #define ll long long #define ull unsigned long long #define pii pair<int, int> #define pll pair<ll, ll> #define pb push_back #define taskname "" using namespace std; const int mod=1e9+7; ll n,i,a[100009],d[100009],x[100009],bit[100009],f[100009],j,ans; bool check; void update(int id,int val){ while(id<=n){ bit[id]+=val; bit[id]%=mod; id+=id&-id; } } ll get(int id){ ll res=0; while(id){ res+=bit[id]; res%=mod; id-=id&-id; }return res; } int main() { if (fopen(taskname".inp","r")) { freopen(taskname".inp","r",stdin); freopen(taskname".out","w",stdout); } ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n;check=true; for(i=1;i<=n;i++){ cin>>d[i]>>x[i]; if(d[i]!=1) check=false; } if(check==false){ f[1]=1; for(i=1;i<=n;i++){ for(j=1;j<i;j++){ if(d[j]!=0&&(i-j)%d[j]==0&&i<=j+d[j]*x[j]){ f[i]+=f[j]; f[i]%=mod; } } }ans=0; for(i=1;i<=n;i++) ans+=f[i],ans%=mod; cout<<ans; }else{ update(1,1); update(2,-1); for(i=1;i<=n;i++){ j=get(i); update(i+1,j); update(i+x[i]+1,-j); } for(i=1;i<=n;i++){ ans+=get(i); ans%=mod; }cout<<ans; } return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:31:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |   freopen(taskname".inp","r",stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:32:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |   freopen(taskname".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...