Submission #994232

#TimeUsernameProblemLanguageResultExecution timeMemory
994232vjudge1Sightseeing in Kyoto (JOI22_kyoto)C++17
0 / 100
5 ms32092 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int MAXN = 2010; ll dp[MAXN][MAXN], a[MAXN], b[MAXN], idxa[MAXN], idxb[MAXN], timera = 1, timerb = 1; set<int> hva, hvb; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= m; i++) cin >> b[i]; for (int i = 0; i < MAXN; i++) { for (int j = 0; j < MAXN; j++) { dp[i][j] = 1e18; } } for (int i = 1; i <= n; i++) { if (!hva.count(a[i])) { hva.insert(a[i]); idxa[timera++] = i; } } for (int i = 1; i <= m; i++) { if (!hvb.count(b[i])) { hvb.insert(b[i]); idxb[timerb++] = i; } } dp[1][1] = 0; for (int i = 1; i < timera; i++) { for (int j = 1; j < timerb; j++) { dp[i][j+1] = min(dp[i][j+1], dp[i][j] + a[i] * (idxa[i+1] - idxa[i])); dp[i+1][j] = min(dp[i+1][j], dp[i][j] + b[j] * (idxb[j+1] - idxb[j])); } } cout << dp[timera-1][timerb-1] << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...