Submission #106424

#TimeUsernameProblemLanguageResultExecution timeMemory
106424DodgeBallManDetecting Molecules (IOI16_molecules)C++14
100 / 100
82 ms6252 KiB
#include <bits/stdc++.h>
#include "molecules.h"
#define pii pair<int, int>
#define x first 
#define y second

using namespace std;

vector<pii> v;
vector<int> ans;

vector<int> find_subset( int l, int u, vector<int> w ) {
    for( int i = 0 ; i < w.size() ; i++ ) v.emplace_back( pii( w[i], i ) );
    sort( v.begin(), v.end() );
    int ll = 0, rr = 0;
    long long sum = 0;
    while( ll < w.size() ) {
        while( rr < w.size() && sum < l ) sum += ( long long ) v[rr++].x;
        if( sum >= l && sum <= u ) {
            for( int i = ll ; i < rr ; i++ ) ans.emplace_back( v[i].y );
            return ans;
        }
        sum -= ( long long ) v[ll++].x;
    }
    return {};
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:13:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for( int i = 0 ; i < w.size() ; i++ ) v.emplace_back( pii( w[i], i ) );
                      ~~^~~~~~~~~~
molecules.cpp:17:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while( ll < w.size() ) {
            ~~~^~~~~~~~~~
molecules.cpp:18:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while( rr < w.size() && sum < l ) sum += ( long long ) v[rr++].x;
                ~~~^~~~~~~~~~
#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...