Submission #860455

#TimeUsernameProblemLanguageResultExecution timeMemory
860455meliodasssfBajka (COCI20_bajka)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N_MAX = 302; const int M_MAX = 302; int n, m; string a, b; ll dp[M_MAX][N_MAX]; struct path { pair<int,int> s; long long len; }; bool operator < (const path &a, const path &b) { return a.len > b.len; } map <char, int> mp; void dijkstra() { priority_queue <path> pq; for (int i=1; i<=n; i++) { if(a[i] == b[1]) { pq.push(path{{1, i}, 0}); } } while(pq.empty() == false) { path p = pq.top(); pq.pop(); if(visited[p.s.first][p.s.second] == true) continue; visited[p.s.first][p.s.second] = true; dp[p.s.first][p.s.second] = p.len; if(p.s.first == m) continue; if(p.s.second > 1 && a[p.s.second - 1] == b[p.s.first + 1] && visited[p.s.first + 1][p.s.second - 1] == false) { pq.push(path{{p.s.first + 1, p.s.second - 1}, p.len + 1}); } if(p.s.second < n && a[p.s.second + 1] == b[p.s.first + 1] && visited[p.s.first + 1][p.s.second + 1] == false) { pq.push(path{{p.s.first + 1, p.s.second + 1}, p.len + 1}); } int pos1 = L[p.s.second]; int pos2 = R[p.s.second]; if(pos1 != 0 && visited[p.s.first][pos1] == false) { pq.push(path{{p.s.first, pos1}, p.len + abs(p.s.second - pos1)}); } if(pos2 != 0 && visited[p.s.first][pos2] == false) { pq.push(path{{p.s.first, pos2}, p.len + abs(p.s.second - pos2)}); } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; cin >> a >> b; a = " " + a; b = " " + b; for(int i = 1; i <= n; i++) { if(mp.find(a[i]) != mp.end()) L[i] = mp[a[i]]; mp[a[i]] = i; } mp.clear(); for(int i = n; i >= 1; i--) { if(mp.find(a[i]) != mp.end()) R[i] = mp[a[i]]; mp[a[i]] = i; } mp.clear(); Dijkstra(); ll ans = LLONG_MAX; for(int i = 1; i <= n; i++) if(visited[m][i] == true) ans = min(ans, dp[m][i]); if(ans == LLONG_MAX) ans = -1; cout << ans << "\n"; return 0; }

Compilation message (stderr)

bajka.cpp: In function 'void dijkstra()':
bajka.cpp:44:12: error: 'visited' was not declared in this scope
   44 |         if(visited[p.s.first][p.s.second] == true) continue;
      |            ^~~~~~~
bajka.cpp:45:9: error: 'visited' was not declared in this scope
   45 |         visited[p.s.first][p.s.second] = true;
      |         ^~~~~~~
bajka.cpp:57:20: error: 'L' was not declared in this scope
   57 |         int pos1 = L[p.s.second];
      |                    ^
bajka.cpp:58:20: error: 'R' was not declared in this scope
   58 |         int pos2 = R[p.s.second];
      |                    ^
bajka.cpp: In function 'int main()':
bajka.cpp:82:13: error: 'L' was not declared in this scope
   82 |             L[i] = mp[a[i]];
      |             ^
bajka.cpp:89:13: error: 'R' was not declared in this scope
   89 |             R[i] = mp[a[i]];
      |             ^
bajka.cpp:93:5: error: 'Dijkstra' was not declared in this scope; did you mean 'dijkstra'?
   93 |     Dijkstra();
      |     ^~~~~~~~
      |     dijkstra
bajka.cpp:96:12: error: 'visited' was not declared in this scope
   96 |         if(visited[m][i] == true)
      |            ^~~~~~~