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
AC × 3
AC × 29
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