Submission #737330

#TimeUsernameProblemLanguageResultExecution timeMemory
737330AmaarsaaDetecting Molecules (IOI16_molecules)C++14
100 / 100
46 ms7356 KiB
//#include "molecules.h"
#include<bits/stdc++.h>
 
using namespace std;
using ll = long long;
ll a[400004];
vector<int> find_subset(int l, int u,  vector<int> w) {
	
	ll p, sum, s, j, r, i;
	vector < pair < int, int > > v;
	for ( i = 0; i < w.size(); i ++) v.push_back(make_pair(w[i], i));
	sort (v.begin(), v.end());
	s = 0;
	
	a[0] = v[0].first;
	w[0] = a[0];
	for ( i = 1; i < w.size(); i ++) {
		w[i] = v[i].first;
		a[i] = a[i - 1] + v[i].first;
	}
	vector < int > Ans;
	p = 0;
	sum = 0;
	for (i = 0; i < w.size(); i ++) {
		
		p = max(p, i);
		while (sum < l && p < v.size()) {
			sum += w[p];
			p ++;
		}
		if (sum >= l && sum <= u && w[p - 1] - w[i] <= u - l) {
			for ( j = i; j <= p - 1; j ++) {
				Ans.push_back(v[j].second);
			}
			break;
		}
		sum -= w[i];
	}
	return Ans;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:11:17: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |  for ( i = 0; i < w.size(); i ++) v.push_back(make_pair(w[i], i));
      |               ~~^~~~~~~~~~
molecules.cpp:17:17: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |  for ( i = 1; i < w.size(); i ++) {
      |               ~~^~~~~~~~~~
molecules.cpp:24:16: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |  for (i = 0; i < w.size(); i ++) {
      |              ~~^~~~~~~~~~
molecules.cpp:27:23: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |   while (sum < l && p < v.size()) {
      |                     ~~^~~~~~~~~~
molecules.cpp:9:13: warning: variable 's' set but not used [-Wunused-but-set-variable]
    9 |  ll p, sum, s, j, r, i;
      |             ^
molecules.cpp:9:19: warning: unused variable 'r' [-Wunused-variable]
    9 |  ll p, sum, s, j, r, i;
      |                   ^
#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...