| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1338001 | AhmadAlhussain | Linear Garden (IOI08_linear_garden) | C++20 | 113 ms | 131072 KiB |
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1000005;
int n,m;
int dp[N][3][3];
bool vis[N][3][3];
int cnt=1;
string s;
int rec(int st,int x,int y) {
if(vis[st][-x][y]) {
vis[st][-x][y]=true;
return dp[st][-x][y];
}
if(st==n) {
return dp[st][-x][y]=1;
}
vis[st][-x][y]=true;
if(x>-2) {
dp[st][-x][y]+=rec(st+1,x-1,max(y-1,0ll));
}
if(y<2) {
dp[st][-x][y]+=rec(st+1,min(x+1,0ll),y+1);
}
return dp[st][-x][y]%=m;
}
void rec1(int st,int x,int y) {
if(st==n)return;
if(s[st]=='P') {
cnt+=dp[st+1][-(x-1)][max(y-1,0ll)];
cnt%=m;
rec1(st+1,min(x+1,0ll),y+1);
}
else {
rec1(st+1,x-1,max(y-1,0ll));
}
}
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n>>m>>s;
rec(0,0,0);
rec1(0,0,0);
cout<<cnt<<'\n';
}
| # | 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... | ||||
| # | 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... | ||||
| # | 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... | ||||
| # | 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... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
