# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
555226 | 600Mihnea | Sightseeing in Kyoto (JOI22_kyoto) | C++17 | 2078 ms | 2604 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
bool home = 1;
using namespace std;
typedef long long ll;
const int N=(int)1e5+7;
const ll INF=(ll)1e18+7;
int n;
int m;
ll a[N];
ll b[N];
signed main() {
#ifdef ONLINE_JUDGE
home = 0;
#endif
home = 0;
if (home) {
freopen("I_am_iron_man", "r", stdin);
}
else {
ios::sync_with_stdio(0); cin.tie(0);
}
cin>>n>>m;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=1;i<=m;i++) cin>>b[i];
vector<ll> difs(m);
difs[0]=-INF;
for (int j=1;j<m;j++){
difs[j]=a[1];
}
for (int i=2;i<=n;i++){
ll delta2=0;
for(int j=0;j<m;j++){
ll delta=delta2-difs[j];
delta2 = min(b[j+1],delta2-difs[j]+a[i]);
difs[j]=min(b[j+1],delta+a[i])-delta;
}
}
ll s=0;
for (auto &x:difs){
s+=x;
}
cout<<s+INF<<"\n";
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |