Submission #1020333

#TimeUsernameProblemLanguageResultExecution timeMemory
1020333aaaaaarrozLinear Garden (IOI08_linear_garden)C++17
100 / 100
10 ms10232 KiB
#include <bits/stdc++.h> #define ll long long #define F first #define S second #define all(x) x.begin(), x.end() #define pb push_back #define FIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0) using namespace std; typedef pair <ll, ll> pii; const int N = 1e6 + 7; int n, mod; string s; ll ps[N]; int main () { FIO; cin >> n >> mod >> s; ps[n] = ps[n-1] = 1; for (int i = n-2; i >= 0; i--) { ps[i] = 2*ps[i+2] % mod; } ll res = 1; int la = 0; for (int i = 0; i < n; i++) { if (i > 1 && s[i-1] == s[i-2]) la = i-1; if (s[i] == 'L') continue; if (la && s[la] == 'L' && s[i-1] == 'L') continue; if (!i) res = (res + ps[0] + ps[1] - 1 + mod) % mod; else if (s[i-1] == 'L') res = (res + ps[i+1]) % mod; else { if (!la) res = (res + ps[i] + ps[i+1] + mod - 1) % mod; else res = (res + ps[i+1]) % mod; } } cout << res; return 0; }
#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...
#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...
#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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...