Submission #1239627

#TimeUsernameProblemLanguageResultExecution timeMemory
1239627yuichiro17나일강 (IOI24_nile)C++20
67 / 100
2095 ms4340 KiB
#include "nile.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

std::vector<long long> calculate_costs(std::vector<int> W, std::vector<int> A, std::vector<int> B, std::vector<int> E) {
  int n=W.size();
  vector<ll>res;
  for(int d:E){
    ll ans=0;
    for(int i:B)ans+=i;
    vector<pair<int,int>>a(n);
    for(int i=0;i<n;i++){
      a[i]={W[i],A[i]-B[i]};
    }
    sort(a.begin(),a.end());
    for(int l=0,r=0;r<n;r++){
      if(r==n-1||a[r+1].first-a[r].first>d){
        if((r-l+1)%2){
          int m=1e9;
          for(int i=l;i<=r;i++){
            if((i-l)%2==0){
              m=min(m,a[i].second);
            }else{
              if(a[i+1].first-a[i-1].first<=d){
                m=min(m,a[i].second);
              }
            }
          }
          ans+=m;
        }
        l=r+1;
      }
    }
    res.push_back(ans);
  }
  return res;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...