Submission #170052

#TimeUsernameProblemLanguageResultExecution timeMemory
170052whtttDetecting Molecules (IOI16_molecules)C++14
0 / 100
2 ms376 KiB


#include <iostream>
#include <vector>
#include <algorithm>
#define ll long long

//#include "molecules.h"

using namespace std;

vector<ll> find_subset(int l, int u, vector<int> w){
    ll sum = 0;
    vector<ll> returnThis;
    vector<pair<ll, ll>> sol;
    for(ll i = 0;i < w.size();i++){
        sol.push_back({w[i],i});
    }
    sort(sol.begin(), sol.end());
    for(ll i = 0;i < sol.size();i++){
        sum += sol[i].first;
        //cout << sum << endl;
        if(sum <= u && sum >= l){
            for(ll j = 0;j <= i;j++){
                returnThis.push_back(sol[j].second);
            }
            return returnThis;
        } else if(sum > u){
            sum -= sol[i].first;
            //cout << "prvych " << i << " nestaci" << endl;
            for(ll j = i;j < sol.size();j++){
                sum += sol[j].first-sol[j-i].first;
                //cout << sol[j].first << " priratane a " << sol[j-i].first << " odratane" << endl;
                if(sum <= u && sum >= l){
                    for(ll k = j-i+1;k <= j;k++){
                        returnThis.push_back(sol[k].second);
                    }
                    return returnThis;
                }
                if(j == sol.size()-1){
                    return {};
                }
            }
        }
    }
    return {};
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<long long int> find_subset(int, int, std::vector<int>)':
molecules.cpp:16:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(ll i = 0;i < w.size();i++){
                  ~~^~~~~~~~~~
molecules.cpp:20:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(ll i = 0;i < sol.size();i++){
                  ~~^~~~~~~~~~~~
molecules.cpp:31:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(ll j = i;j < sol.size();j++){
                          ~~^~~~~~~~~~~~
molecules.cpp:40:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 if(j == sol.size()-1){
                    ~~^~~~~~~~~~~~~~~
#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...