Submission #1238572

#TimeUsernameProblemLanguageResultExecution timeMemory
1238572ricardsjansons나일강 (IOI24_nile)C++20
17 / 100
2094 ms12572 KiB
#include "nile.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;

vector<ll> calculate_costs(vector<int>w,
                           vector<int>a,
                           vector<int>b,
                           vector<int>e){
    int n=w.size();
    int q=e.size();
    sort(w.begin(),w.end());
    map<int,vector<int>>ord;
    for(int i=0;i<q;i++){
        ord[e[i]].push_back(i);
    }
    sort(e.begin(),e.end());
    int l[n],r[n],sz[n],nxt[n];
    for(int i=0;i<n;i++){
        l[i]=r[i]=w[i];
        sz[i]=1;
        nxt[i]=i+1;
    }
    vector<ll>res(q);
    for(int d:e){
        if(ord[d].empty()){
            continue;
        }
        ll cost=0;
        int i=0;
        while(i<n){
            while(1){
                int j=nxt[i];
                if(j==n||l[j]-r[i]>d){
                    break;
                }
                r[i]=r[j];
                sz[i]+=sz[j];
                nxt[i]=nxt[j];
            }
            cost+=sz[i]+sz[i]%2;
            i=nxt[i];
        }
        for(int i:ord[d]){
            res[i]=cost;
        }
        ord[d].clear();
    }
    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...