Submission #835090

#TimeUsernameProblemLanguageResultExecution timeMemory
835090veehjCat Exercise (JOI23_ho_t4)C++17
21 / 100
2060 ms5172 KiB
#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)

Main.cpp: In function 'int f(ll, ll, ll)':
Main.cpp:24:35: warning: 'ht' may be used uninitialized in this function [-Wmaybe-uninitialized]
   24 |   return ans+max(f(l, ht-1, ht), f(ht+1, r, ht));
      |                                  ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...