제출 #240249

#제출 시각아이디문제언어결과실행 시간메모리
240249Amy313Detecting Molecules (IOI16_molecules)C++14
100 / 100
67 ms6128 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
std::vector<int> find_subset(int l, int u, std::vector<int> w)
{
    vector<pair<long long int, int> >M;
    vector<int> A;
    long long int s = 0, n = w.size(), c;
    for(int i=0; i<w.size(); i++)
    {
        M.push_back(make_pair(w[i], i));
    }
    sort(M.begin(), M.end());
    A.clear();
    if(M[0].first>u)
	{
		return A;
	}
	int p1 = 0, p2 = 0;
	s =0;
    for(int i=0; i<n and s<l; i++)
    {
        if(s+M[p2].first>u)
		{
			s-=M[p1].first;
			s+=M[p2].first;
			p1++;
			p2++;
		}
		else
		{
			if(s>=l and s<=u)
			{
				break;
			}
			else
			{
				s+=M[p2].first;
				p2++;
			}
		}
    }
    if(s>u or s<l)
	{
		return A;
	}
	else
	{
		for(int i=p1; i<p2; i++)
		{
			A.push_back(M[i].second);
		}
		return A;
	}
}

컴파일 시 표준 에러 (stderr) 메시지

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:9:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<w.size(); i++)
                  ~^~~~~~~~~
molecules.cpp:8:40: warning: unused variable 'c' [-Wunused-variable]
     long long int s = 0, n = w.size(), c;
                                        ^
#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...