Submission #7064940
Source Code Expand
#include <bits/stdc++.h>
#define rep(i, n) for (ll i = 0; i < (n); i++)
#define rep2(i, a, b) for (ll i = (a); i < (b); i++)
typedef uint64_t ull;
typedef int64_t ll;
typedef std::pair<ll, ll> PLL;
using namespace std;
set<ll> can[300];
ll ans[100100];
signed main() {
string s, t;
cin >> s >> t;
ll ns = s.size(), nt = t.size();
rep(i, ns) {
can[s[i]].insert(i);
}
rep(i, 300) {
if (can[i].size() == 0)
continue;
auto mi = *can[i].begin();
can[i].insert(mi + ns);
//printf("%c :", i);
//for (auto c : can[i]) {
// printf("%d ", c);
//}
//printf("\n");
}
// printf("ans: ");
ll pos = -1;
rep(i, nt) {
if (can[t[i]].size() == 0) {
cout << -1 << endl;
return 0;
}
ll now = pos % ns;
ll nxt = *can[t[i]].lower_bound((pos+1) % ns);
if (nxt > now) {
pos = pos + (nxt-now);
} else {
pos = pos + (ns+nxt-now);
}
ans[i] = pos;
//printf("%d ", ans[i]);
}
//printf("\n");
cout << ans[nt-1] + 1 << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Strings of Impurity |
| User | bobuhiro11 |
| Language | C++14 (GCC 5.4.1) |
| Score | 500 |
| Code Size | 1094 Byte |
| Status | AC |
| Exec Time | 43 ms |
| Memory | 5888 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | a01, a02, a03 |
| All | a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| a01 | AC | 1 ms | 256 KiB |
| a02 | AC | 1 ms | 256 KiB |
| a03 | AC | 1 ms | 256 KiB |
| b04 | AC | 1 ms | 256 KiB |
| b05 | AC | 1 ms | 256 KiB |
| b06 | AC | 1 ms | 256 KiB |
| b07 | AC | 1 ms | 256 KiB |
| b08 | AC | 1 ms | 256 KiB |
| b09 | AC | 1 ms | 256 KiB |
| b10 | AC | 43 ms | 5888 KiB |
| b11 | AC | 32 ms | 5888 KiB |
| b12 | AC | 34 ms | 5888 KiB |
| b13 | AC | 34 ms | 5888 KiB |
| b14 | AC | 43 ms | 5888 KiB |
| b15 | AC | 43 ms | 5888 KiB |
| b16 | AC | 43 ms | 5888 KiB |
| b17 | AC | 40 ms | 5888 KiB |
| b18 | AC | 40 ms | 5888 KiB |
| b19 | AC | 39 ms | 5888 KiB |
| b20 | AC | 27 ms | 5888 KiB |
| b21 | AC | 29 ms | 5888 KiB |
| b22 | AC | 28 ms | 5888 KiB |
| b23 | AC | 28 ms | 5888 KiB |
| b24 | AC | 28 ms | 5888 KiB |
| b25 | AC | 38 ms | 5888 KiB |
| b26 | AC | 35 ms | 5888 KiB |
| b27 | AC | 33 ms | 5888 KiB |
| b28 | AC | 30 ms | 5888 KiB |
| b29 | AC | 28 ms | 5888 KiB |
| b30 | AC | 27 ms | 5888 KiB |
| b31 | AC | 23 ms | 5120 KiB |
| b32 | AC | 7 ms | 1280 KiB |
| b33 | AC | 6 ms | 896 KiB |
| b34 | AC | 28 ms | 5120 KiB |
| b35 | AC | 22 ms | 4992 KiB |
| b36 | AC | 30 ms | 5888 KiB |
| b37 | AC | 30 ms | 5888 KiB |
| b38 | AC | 31 ms | 5888 KiB |
| b39 | AC | 31 ms | 5888 KiB |
| b40 | AC | 26 ms | 5888 KiB |
| b41 | AC | 25 ms | 5888 KiB |
| b42 | AC | 31 ms | 5120 KiB |
| b43 | AC | 25 ms | 5120 KiB |
| b44 | AC | 34 ms | 5888 KiB |
| b45 | AC | 34 ms | 5888 KiB |