# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
835090 | veehj | Cat Exercise (JOI23_ho_t4) | C++17 | 2060 ms | 5172 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>
using namespace std;
typedef long long ll;
typedef long double ld;
#define F first
#define S second
#define pb push_back
#define sz(a) (int)a.size()
#define all(x) (x).begin(), (x).end()
int n; vector<pair<int, int>> p;
int f(ll l, ll r, ll nw){
if(r<=l) return abs(nw-r);
int ans=0;
int ht;
for(int i=0; i<n; i++){
if(l<=p[i].S && p[i].S<=r){
ht=p[i].S;
ans+=abs(nw-ht);
break;
}
}
return ans+max(f(l, ht-1, ht), f(ht+1, r, ht));
}
int main() {
cin >> n;
p.resize(n);
for(int i=0; i<n; i++){
cin >> p[i].F;
p[i].S=i;
}
sort(all(p), greater<pair<int, int>>());
int a, b; for(int i=0; i<n-1; i++) cin >> a >> b;
cout << f(0, n-1, p[0].S);
}
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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |