#include <bits/stdc++.h>
#include <climits>
using namespace std;
#define f first
#define s second
#define all(a) a.begin(),a.end()
#define sz(a) (int)a.size()
#define int long long
const int N=1e3+5;
pair<int,int>M[N];
int dp[7][N];
int cnt[7][N];
int res[7];
int cou_mod(int n,int x,int M){ // n mod x == M
if(n<M)return 0;
return (n-M)/x +1;
}
void solve(){
int n;cin>>n;
for(int i=1;i<=n;++i) cin>>M[i].f>>M[i].s;
for(int i=1;i<=n;++i){
for(int j=0;j<5;++j){
cnt[j][i]=cou_mod(M[i].s,5,j)-cou_mod(M[i].f-1,5,j);
}
}
dp[0][0]=1;
//dp[x][i] : số cách tạo dãy M1 ->Mi sao cho sum % 5 = x
for(int i=1;i<=n;++i){
for(int x=0;x<=4;++x){
for(int j=0;j<=4;++j){
int pre= (x-j+5) %5;
dp[x][i]+=dp[pre][i-1]*cnt[j][i];
}
}
}
res[0]=1;
res[1]=4;
res[2]=5;
res[3]=5;
res[4]=4;
int ans=0;
for(int i=0;i<=4;++i) ans+=dp[i][n]*res[i];
cout<<ans;
}
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int T=1;
while(T--) solve();
}
| # | 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... |