Submission #1158857

#TimeUsernameProblemLanguageResultExecution timeMemory
1158857why1Detecting Molecules (IOI16_molecules)C++20
100 / 100
43 ms6728 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long 
#define pb push_back
#define sz size()
#define pll pair<ll,ll>
#define fi first
#define se second

vector<int> find_subset(int l, int r, vector<int> w) {
	int n=w.sz;
	pll a[n+1];
	for(int i = 1; i <= n; i++){
		a[i]={w[i-1],i-1};
	}
	sort(a+1,a+n+1);
	ll pref[n+1];
	memset(pref,0,sizeof(pref));
	for(int i = 1; i <= n; i++){
		pref[i]=pref[i-1]+a[i].fi;
	}
	vector<int> ans;
	for(int i = 1; i <= n; i++){
		if(a[i].fi>r) continue;
		ll L=i,R=n+1;
		while(L+1<R){
			int mid=(L+R)/2;
			if(pref[mid]<=r+pref[i-1])
				L=mid;
			else
				R=mid;
		}
		ll j=L;
		if(l<=pref[j]-pref[i-1]){
			for(int k = i; k <= j; k++){
				ans.pb(a[k].se);
			}
			return ans;
		}
	}
	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...