Submission #1367973

#TimeUsernameProblemLanguageResultExecution timeMemory
1367973AlmontherNile (IOI24_nile)C++20
0 / 100
28 ms10500 KiB
#include<bits/stdc++.h>

using namespace std;

#define ll long long

ll sol(vector<array<ll,3>>arr,ll d){
    ll ans=1e18,sum=0,n=arr.size();
    for(auto i:arr) sum+=i[2];
    for(int i=0;i<arr.size();i++) if(i%2==0||arr[i+1][0]-arr[i-1][0]<=d) ans=min(ans,sum+arr[i][1]-arr[i][2]);
    return ans;
}
std::vector<long long> calculate_costs(std::vector<int> W, std::vector<int> A,std::vector<int> B, std::vector<int> E){
    ll n=W.size();
    vector<ll>anss;
    array<ll,3>arr[n+5];
    for(int i=0;i<n;i++) arr[i]={W[i],A[i],B[i]};
    sort(arr,arr+n);
    for(auto d:E){
        vector<array<ll,3>>gr;
        ll ans=0;
        gr.push_back(arr[0]);
        for(int i=1;i<n;i++){
            if(arr[i][0]-arr[i-1][0]<=d) gr.push_back(arr[i]);
            else{
                ans+=sol(gr,d);
                gr.clear();
                gr.push_back(arr[i]);
            }
        }
        ans+=sol(gr,d);
        anss.push_back(ans);
    }
    return anss;
}
// int main(){
//     calculate_costs({15, 12, 2, 10, 21},
//                 {5, 4, 5, 6, 3},
//                 {1, 2, 2, 3, 2},
//                 {5, 9, 1})
// }
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...