제출 #884858

#제출 시각아이디문제언어결과실행 시간메모리
884858MinaRagy06Sightseeing in Kyoto (JOI22_kyoto)C++17
10 / 100
697 ms1048576 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long int di[2] = {0, 1}; int dj[2] = {1, 0}; int main() { ios_base::sync_with_stdio(0), cin.tie(0); int n, m; cin >> n >> m; ll dist[n][m], a[n], b[m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { dist[i][j] = 1e18; } } for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < m; i++) { cin >> b[i]; } auto valid = [&] (int i, int j) { return i < n && j < m; }; dist[0][0] = 0; priority_queue<array<ll, 3>> pq; pq.push({0, 0, 0}); while (pq.size()) { auto [c, i, j] = pq.top(); pq.pop(); c *= -1; for (int k = 0; k < 2; k++) { ll newi = i + di[k]; ll newj = j + dj[k]; ll newc = c + (!di[k]) * a[i] + (!dj[k]) * b[j]; if (valid(newi, newj) && newc < dist[newi][newj]) { dist[newi][newj] = newc; pq.push({-newc, newi, newj}); } } } cout << dist[n - 1][m - 1] << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...