Skip to content

Commit 77d6a57

Browse files
committed
Added INOI 2020 problem
1 parent 0499f00 commit 77d6a57

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
#define ll long long
4+
const ll mod = 1e9+7, N = 1e6+7;
5+
int main()
6+
{
7+
ll t;
8+
cin>>t;
9+
while(t--){
10+
ll k, n;
11+
cin>>k>>n;
12+
if(k == 1){
13+
cout<<(n%3==0?1:0)<<endl;
14+
}
15+
else if(k == 2){
16+
vector<ll> dp(n+5, 0);
17+
dp[2] = 1;
18+
dp[3] = 1;
19+
for(ll i = 4;i<=n;i++)dp[i] = (dp[i-3]+dp[i-2])%mod;
20+
cout<<dp[n]<<endl;
21+
}
22+
else{
23+
vector<ll> dp(n+5, 0), dp2(n+5, 0), dp3(n+5, 0);
24+
dp[1] = dp[2] = dp[3] = 1;
25+
dp[3]++;
26+
dp3[3] = 1;
27+
28+
for(int i = 4;i<=n;i++){
29+
dp[i] = (dp[i-3]%mod + dp[i-1]%mod + (dp2[i -2]*2)%mod)%mod;
30+
dp3[i] = (dp[i-3] + dp3[i-3])%mod ;
31+
dp2[i] = (dp2[i-3] + dp3[i-1])%mod;
32+
33+
}
34+
cout<<dp[n]%mod<<endl;
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)