# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
20874 | 2017-02-28T16:26:56 Z | gs14004 | 돌 옮기기 (GA7_stone) | C++11 | 96 ms | 5316 KB |
#include <bits/stdc++.h> using namespace std; typedef long long lint; typedef long double llf; typedef pair<lint, lint> pi; const int mod = 1e9 + 7; string s, t; int l, n, fail[400005]; int main(){ cin >> l >> n; for(int i=0; i<2*n; i++){ char t[5]; scanf("%*d %s",t); s.push_back(*t); } string t = s + s; for(auto &i : s) i = 'W' + 'B' - i; int p = 0, ans = 1e9; for(int i=1; i<s.size(); i++){ while(p > 0 && s[i] != s[p]) p = fail[p]; if(s[i] == s[p]) p++; fail[i+1] = p; } p = 0; for(int i=0; i<t.size(); i++){ while(p > 0 && t[i] != s[p]) p = fail[p]; if(t[i] == s[p]) p++; if(p == s.size()){ ans = min({ans, i+1-2*n, 4*n-i-1}); } } if(ans > 1e8){ puts("-1"); return 0; } cout << 1ll * ans * l; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 3580 KB | Output is correct |
2 | Correct | 0 ms | 3580 KB | Output is correct |
3 | Correct | 0 ms | 3580 KB | Output is correct |
4 | Correct | 0 ms | 3580 KB | Output is correct |
5 | Correct | 0 ms | 3580 KB | Output is correct |
6 | Correct | 0 ms | 3580 KB | Output is correct |
7 | Correct | 0 ms | 3580 KB | Output is correct |
8 | Correct | 0 ms | 3580 KB | Output is correct |
9 | Correct | 0 ms | 3580 KB | Output is correct |
10 | Correct | 0 ms | 3580 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 3580 KB | Output is correct |
2 | Correct | 0 ms | 3580 KB | Output is correct |
3 | Correct | 0 ms | 3580 KB | Output is correct |
4 | Correct | 0 ms | 3580 KB | Output is correct |
5 | Correct | 0 ms | 3580 KB | Output is correct |
6 | Correct | 0 ms | 3580 KB | Output is correct |
7 | Correct | 0 ms | 3580 KB | Output is correct |
8 | Correct | 0 ms | 3580 KB | Output is correct |
9 | Correct | 0 ms | 3580 KB | Output is correct |
10 | Correct | 0 ms | 3580 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 3580 KB | Output is correct |
2 | Correct | 0 ms | 3580 KB | Output is correct |
3 | Correct | 0 ms | 3580 KB | Output is correct |
4 | Correct | 0 ms | 3580 KB | Output is correct |
5 | Correct | 0 ms | 3580 KB | Output is correct |
6 | Correct | 0 ms | 3580 KB | Output is correct |
7 | Correct | 0 ms | 3580 KB | Output is correct |
8 | Correct | 0 ms | 3580 KB | Output is correct |
9 | Correct | 0 ms | 3580 KB | Output is correct |
10 | Correct | 0 ms | 3580 KB | Output is correct |
11 | Correct | 0 ms | 3580 KB | Output is correct |
12 | Correct | 0 ms | 3580 KB | Output is correct |
13 | Correct | 0 ms | 3580 KB | Output is correct |
14 | Correct | 0 ms | 3580 KB | Output is correct |
15 | Correct | 0 ms | 3580 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 3580 KB | Output is correct |
2 | Correct | 0 ms | 3580 KB | Output is correct |
3 | Correct | 0 ms | 3580 KB | Output is correct |
4 | Correct | 0 ms | 3580 KB | Output is correct |
5 | Correct | 0 ms | 3580 KB | Output is correct |
6 | Correct | 0 ms | 3580 KB | Output is correct |
7 | Correct | 0 ms | 3580 KB | Output is correct |
8 | Correct | 0 ms | 3580 KB | Output is correct |
9 | Correct | 0 ms | 3580 KB | Output is correct |
10 | Correct | 0 ms | 3580 KB | Output is correct |
11 | Correct | 0 ms | 3580 KB | Output is correct |
12 | Correct | 0 ms | 3580 KB | Output is correct |
13 | Correct | 0 ms | 3580 KB | Output is correct |
14 | Correct | 0 ms | 3580 KB | Output is correct |
15 | Correct | 0 ms | 3580 KB | Output is correct |
16 | Correct | 0 ms | 3580 KB | Output is correct |
17 | Correct | 0 ms | 3580 KB | Output is correct |
18 | Correct | 0 ms | 3580 KB | Output is correct |
19 | Correct | 0 ms | 3580 KB | Output is correct |
20 | Correct | 0 ms | 3580 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 36 ms | 4488 KB | Output is correct |
2 | Correct | 43 ms | 4604 KB | Output is correct |
3 | Correct | 36 ms | 4476 KB | Output is correct |
4 | Correct | 26 ms | 4104 KB | Output is correct |
5 | Correct | 43 ms | 4864 KB | Output is correct |
6 | Correct | 63 ms | 5292 KB | Output is correct |
7 | Correct | 53 ms | 4964 KB | Output is correct |
8 | Correct | 73 ms | 5256 KB | Output is correct |
9 | Correct | 63 ms | 5076 KB | Output is correct |
10 | Correct | 79 ms | 5300 KB | Output is correct |
11 | Correct | 63 ms | 5076 KB | Output is correct |
12 | Correct | 89 ms | 5312 KB | Output is correct |
13 | Correct | 76 ms | 5304 KB | Output is correct |
14 | Correct | 93 ms | 5316 KB | Output is correct |
15 | Correct | 89 ms | 5316 KB | Output is correct |
16 | Correct | 93 ms | 5316 KB | Output is correct |
17 | Correct | 86 ms | 5316 KB | Output is correct |
18 | Correct | 93 ms | 5316 KB | Output is correct |
19 | Correct | 76 ms | 5316 KB | Output is correct |
20 | Correct | 96 ms | 5316 KB | Output is correct |
21 | Correct | 86 ms | 5316 KB | Output is correct |
22 | Correct | 93 ms | 5316 KB | Output is correct |
23 | Correct | 79 ms | 5316 KB | Output is correct |
24 | Correct | 93 ms | 5316 KB | Output is correct |
25 | Correct | 93 ms | 5316 KB | Output is correct |
26 | Correct | 76 ms | 5316 KB | Output is correct |
27 | Correct | 89 ms | 5316 KB | Output is correct |
28 | Correct | 89 ms | 5316 KB | Output is correct |
29 | Correct | 89 ms | 5316 KB | Output is correct |
30 | Correct | 86 ms | 5316 KB | Output is correct |