이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "molecules.h"
#include <iostream>
using namespace std;
long long int a[1000005][2],tree[1000005],c,d;
long long int buildtree(int l,int r,int t)
{
	if(l==r)return tree[t]=a[l][0];
	return tree[t]=buildtree(l,(l+r)/2,t*2)+buildtree((l+r)/2+1,r,t*2+1);
}
long long int findtree(int l,int r,int t)
{
	//cout<<l<<" "<<r<<" "<<t<<" "<<c<<" "<<d<<endl;
	if(d<l || c>r)return 0;
	if(c<=l && r<=d)return tree[t];
	return findtree(l,(l+r)/2,t*2)+findtree((l+r)/2+1,r,t*2+1);
}
long long int qs(int s,int e)
{
	//cout<<s<<" "<<e<<endl;
	if(s>=e)return 0;
	int l=s,r=e,mid=(a[l][0]+a[r][0])/2;
	while(l<=r)
	{
		while(a[l][0]<mid)l++;
		while(a[r][0]>mid)r--;
		if(l<=r)
		{
			swap(a[l][0],a[r][0]);
			swap(a[l][1],a[r][1]);
			l++;
			r--;
		}
	}
	qs(s,r);
	qs(l,e);
} 
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
	long long int n=w.size();
	for(int i=0;i<n;i++)
	{
		a[i][0]=w[i];
		a[i][1]=i;
	}
	qs(0,n-1);
	buildtree(0,n-1,1);
	for(int i=1;i<=n;i++)
	{
		int s=i-1,e=n-1;
		while(s<=e)
		{
			long long int mid=(s+e)/2;
			c=mid-i+1,d=mid;
			//cout<<c<<" "<<d<<endl;
			long long int sum=findtree(0,n-1,1);
			
			//cout<<sum<<endl;
 
			if(l<=sum && sum<=u)
			{
				long long int m=d-c+1;
				vector<int> ans(m);
				for(int j=c;j<=d;j++)ans[j-c]=a[j][1];
				return ans;
			}
			if(sum<l)s=mid+1;
			else e=mid-1;
		}
	}
	vector<int> ans;
	return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
molecules.cpp: In function 'long long int qs(int, int)':
molecules.cpp:36:1: warning: control reaches end of non-void function [-Wreturn-type]
 } 
 ^
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |