Submission #5828289
Source Code Expand
#include "bits/stdc++.h"
using namespace std;
// fundamental
using ll = long long;
#define REP(i,n) for (ll i = 0; i < (n); ++i)
#define FOR(i,s,n) for (ll i = (s); i < (n); ++i)
#define ALL(c) (c).begin(), (c).end()
#define TEN(x) ((ll)1e##x)
#define MAXC(c,x) (c = max(c, x))
#define MINC(c,x) (c = min(c, x))
const ll mod = TEN(9) + 7;
// vector
using vl = vector<ll>; using vvl = vector<vl>; using vvvl = vector<vvl>;
template<class T, size_t N, class A = size_t> auto mdv(A size = 0) -> typename enable_if<N==1, vector<T>>::type { return vector<T>(size); }
template<class T, size_t N, class A = size_t> auto mdv(A size = 0) -> vector<decltype(mdv<T, N - 1>())> { return vector<decltype(mdv<T, N - 1>())>(size); }
template<class T, size_t N, class A, class... B> auto mdv(A size, B... rest) -> typename enable_if<N!=1, vector<decltype(mdv<T, N - 1>(rest...))>>::type { return vector<decltype(mdv<T, N - 1>(rest...))>(size, mdv<T, N - 1>(rest...)); }
template<class T, class... A> auto mdv(A... size) -> decltype(mdv<T, sizeof...(size), A...>(size...)) { return mdv<T, sizeof...(size), A...>(size...); }
// template<size_t N, class A, class... B> auto mdvl(A size, B... rest) -> decltype(mdv<N, ll, A, B...>(size, rest...)) { return mdv<N, ll, A, B...>(size, rest...); }
// template<class T, class A> auto mdv(A size) -> vector<T> { return vector<T>(size); }
// template<class T, class A, class... B> auto mdv(A size, B... rest) -> vector<decltype(mdv<T>(rest...))> { return vector<decltype(mdv<T>(rest...))>(size, mdv<T>(rest...)); }
// io
template<class T> istream& operator >>(istream& is, vector<T>& vec){ for(T& x: vec) is >> x; return is; }
template<class T, class U> istream& operator >>(istream& is, pair<T, U>& p){ is >> p.first >> p.second; return is; }
template<class T> void input(T& t) { cin >> t; assert(cin); } template<class T, class... Ts> void input(T& t, Ts&... ts) { cin >> t; input(ts...); }
template<class T> void print(T&& t) { cout << t; } template<class T, class... Ts> void print(T&& t, Ts&&... ts) { cout << t; print(ts...); }
template<class T> void println(T&& t) { cout << t << endl; } template<class T, class... Ts> void println(T&& t, Ts&&... ts) { cout << t; println(ts...); }
template<class T> string join(const vector<T>& v, const string & sep) { stringstream ss; REP(i, v.size()) ss << (i != 0 ? sep : "") << v[i]; return ss.str(); }
int main() {
cin.tie(0);
ios_base::sync_with_stdio(false);
cout << fixed << setprecision(50);
ll n,q;
string s;
cin >> n >> q >>s;
vector<vector<char>> vs(q, vector<char>(2));
REP(i, q) REP(j, 2) cin >> vs[i][j];
reverse(ALL(vs));
ll r = n;
REP(i, q) {
if (r > 0 && vs[i][0] == s[r - 1] && vs[i][1] == 'R') r--;
if (r != n && vs[i][0] == s[r] && vs[i][1] == 'L') r++;
}
ll l = -1;
REP(i, q) {
if (l < n - 1 && vs[i][0] == s[l + 1] && vs[i][1] == 'L') l++;
if (l != -1 && vs[i][0] == s[l] && vs[i][1] == 'R') l--;
}
cout << max(0ll, n - (n - r) - (l + 1)) << endl;
}
Submission Info
| Submission Time |
|
| Task |
C - Snuke the Wizard |
| User |
takamoto |
| Language |
C++14 (GCC 5.4.1) |
| Score |
500 |
| Code Size |
3036 Byte |
| Status |
AC |
| Exec Time |
26 ms |
| Memory |
11412 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
500 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
| All |
sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt |
| Case Name |
Status |
Exec Time |
Memory |
| sample_01.txt |
AC |
1 ms |
256 KiB |
| sample_02.txt |
AC |
1 ms |
256 KiB |
| sample_03.txt |
AC |
1 ms |
256 KiB |
| test_01.txt |
AC |
20 ms |
11412 KiB |
| test_02.txt |
AC |
20 ms |
11412 KiB |
| test_03.txt |
AC |
20 ms |
11412 KiB |
| test_04.txt |
AC |
19 ms |
11344 KiB |
| test_05.txt |
AC |
20 ms |
11344 KiB |
| test_06.txt |
AC |
20 ms |
11412 KiB |
| test_07.txt |
AC |
20 ms |
11344 KiB |
| test_08.txt |
AC |
20 ms |
11344 KiB |
| test_09.txt |
AC |
21 ms |
11344 KiB |
| test_10.txt |
AC |
21 ms |
11344 KiB |
| test_11.txt |
AC |
20 ms |
11344 KiB |
| test_12.txt |
AC |
20 ms |
11344 KiB |
| test_13.txt |
AC |
21 ms |
11344 KiB |
| test_14.txt |
AC |
20 ms |
11344 KiB |
| test_15.txt |
AC |
21 ms |
11344 KiB |
| test_16.txt |
AC |
23 ms |
11344 KiB |
| test_17.txt |
AC |
20 ms |
11412 KiB |
| test_18.txt |
AC |
16 ms |
8784 KiB |
| test_19.txt |
AC |
26 ms |
11412 KiB |
| test_20.txt |
AC |
20 ms |
9856 KiB |
| test_21.txt |
AC |
22 ms |
11412 KiB |
| test_22.txt |
AC |
20 ms |
9936 KiB |
| test_23.txt |
AC |
20 ms |
11412 KiB |
| test_24.txt |
AC |
19 ms |
10704 KiB |
| test_25.txt |
AC |
18 ms |
9552 KiB |
| test_26.txt |
AC |
12 ms |
5456 KiB |