Submission #987639

#TimeUsernameProblemLanguageResultExecution timeMemory
987639mateuszwesDetecting Molecules (IOI16_molecules)C++17
100 / 100
45 ms4164 KiB
#include <bits/stdc++.h>
typedef long long ll;
typedef unsigned long long ull;
#define F first
#define S second
#define pb push_back
#define pq priority_queue
#define pl pair<ll,ll>
#define pi pair<int,int>
 
#include "molecules.h"
 
using namespace std;
 
constexpr int debug = 0;
 
vector<int> find_subset(int l, int u, vector<int> w){
    vector<int> ans;
    ll sum = 0;
    unsigned int poc, kon;
    poc = 0, kon = 0;
    vector<pi> odp;
    int sus = 0;
    for(auto k: w){
    	odp.pb({k, sus});
    	sus++;
    }
    sort(odp.rbegin(), odp.rend());
    
    
    while(kon < odp.size()){
        sum += odp[kon].F;
        
        //cout << poc << ' ' << kon << ' ' << sum << '\n';
        
        while((sum > u) && (poc <= kon)){
            sum -= odp[poc].F;
            poc++;
        }
        
        if((sum >= l) && (sum <= u) && (poc <= kon)){
            while(poc <= kon){
                ans.pb(odp[poc].S);
                poc++;
            }
            return ans;
        }
        kon++;
    }
    
    return ans;
}
#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...