Submission #1136935

#TimeUsernameProblemLanguageResultExecution timeMemory
1136935owoovoDetecting Molecules (IOI16_molecules)C++20
100 / 100
36 ms8264 KiB
#include "molecules.h"
#include<bits/stdc++.h>
#define ll long long 
#define F first 
#define S second 
using namespace std;

int n;
ll l,u,pre[200010],erp[200010];
pair<ll,int> w[200010];
vector<int> find_subset(int L, int U, vector<int> W) {
    int n=W.size(),u=U,l=L;
    for(int i=1;i<=n;i++){
        w[i]={W[i-1],i-1};
    }
    sort(&w[1],&w[n+1]);
    for(int i=1;i<=n;i++){
        pre[i]=pre[i-1]+w[i].F;
    }
    for(int i=n;i>=1;i--){
        erp[i]=erp[i+1]+w[i].F;
    }
    vector<int> ans;
    for(int i=1;i<=n;i++){
        if(pre[i]>u||erp[n-i+1]<l)continue;
        int j=i;
        while(pre[j-1]+erp[n-(i-j+1)+1]<l){
            j--;
        }
        for(int k=1;k<j;k++){
            ans.push_back(w[k].S);
        }
        for(int k=n-i+j+1;k<=n;k++){
            ans.push_back(w[k].S);
        }
        for(int k=j;k<=n-i+j;k++){
            ll sum=pre[j-1]+erp[n-i+j+1]+w[k].F;
            if(sum>=l&&sum<=u){
                ans.push_back(w[k].S);
                break;
            }
        }
        break;
    }

    return ans;
}

Compilation message (stderr)

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...