Submission #1158830

#TimeUsernameProblemLanguageResultExecution timeMemory
1158830why1Detecting Molecules (IOI16_molecules)C++20
0 / 100
1 ms324 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long 
#define pb push_back
#define sz size()

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