Submission #366393

#TimeUsernameProblemLanguageResultExecution timeMemory
366393kartelBajka (COCI20_bajka)C++14
70 / 70
32 ms748 KiB
#include <bits/stdc++.h> #define in(x) freopen(x, "r", stdin) #define out(x) freopen(x, "w", stdout) //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-O3") #define F first #define S second #define pb push_back #define M ll(1e9 + 7) #define sz(x) (int)x.size() #define re return #define oo ll(1e18) #define el '\n' #define pii pair <int, int> #define all(x) (x).begin(), (x).end() #define arr_all(x, n) (x + 1), (x + 1 + n) #define vi vector<int> using namespace std; typedef long long ll; //using namespace __gnu_pbds; //typedef tree <ll, null_type, less_equal <ll> , rb_tree_tag, tree_order_statistics_node_update> ordered_set; //typedef long double ld; typedef unsigned long long ull; const int N = 310; int f[N][N], n, m; string s, t; vector <int> in[300]; int main() { // mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());; ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // in("pixels.in"); // out("pixels.out"); // in("input.txt"); // out("output.txt"); cin >> n >> m >> s >> t; for (int i = 0; i < m; i++) { for (int j = 0; j <= n + 1; j++) f[i][j] = 2e9; } for (int i = 0; i < sz(s); i++) { in[s[i]].pb(i); if (s[i] == t[0]) f[0][i] = 0; } for (int i = 1; i < m; i++) { for (int j = 0; j < sz(in[t[i - 1]]); j++) { int p = in[t[i - 1]][j]; if (f[i - 1][p] == 2e9) continue; for (auto y : in[t[i - 1]]) { int cnt = f[i - 1][p] + abs(p - y) + 1; int np = y - 1; if (np >= 0 && s[np] == t[i]) { f[i][np] = min(f[i][np], cnt); } np = y + 1; if (np < n && s[np] == t[i]) { f[i][np] = min(f[i][np], cnt); } } } } int mn = 2e9; for (int i = 0; i < n; i++) if (s[i] == t.back()) mn = min(mn, f[m - 1][i]); cout << ((mn == 2e9) ? -1 : mn); }

Compilation message (stderr)

bajka.cpp: In function 'int main()':
bajka.cpp:51:16: warning: array subscript has type 'char' [-Wchar-subscripts]
   51 |         in[s[i]].pb(i);
      |                ^
bajka.cpp:58:43: warning: array subscript has type 'char' [-Wchar-subscripts]
   58 |         for (int j = 0; j < sz(in[t[i - 1]]); j++) {
      |                                           ^
bajka.cpp:13:20: note: in definition of macro 'sz'
   13 | #define sz(x) (int)x.size()
      |                    ^
bajka.cpp:59:32: warning: array subscript has type 'char' [-Wchar-subscripts]
   59 |             int p = in[t[i - 1]][j];
      |                                ^
bajka.cpp:64:38: warning: array subscript has type 'char' [-Wchar-subscripts]
   64 |             for (auto y : in[t[i - 1]]) {
      |                                      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...