| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1326069 | SSKMF | Detecting Molecules (IOI16_molecules) | C++20 | 34 ms | 5276 KiB |
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
vector <int> find_subset (int minim , int maxim , vector <int> sir)
{
vector < pair <int , int> > copie(sir.size());
for (int indice = 0 ; indice < (int)sir.size() ; indice++)
{ copie[indice] = {sir[indice] , indice}; }
sort(copie.begin() , copie.end());
vector <int64_t> prefix((int)copie.size() + 1);
for (int indice = 1 ; indice <= (int)copie.size() ; indice++)
{ prefix[indice] = prefix[indice - 1] + copie[indice - 1].first; }
for (int luat = (int)copie.size() ; luat && prefix.back() - prefix[(int)copie.size() - luat] >= minim ; luat--) {
if (prefix[luat] <= maxim)
{
int stanga = 0 , dreapta = luat;
while (stanga <= dreapta)
{
const int candidat = (stanga + dreapta) >> 1;
if (prefix[candidat] + prefix.back() - prefix[(int)copie.size() - (luat - candidat)] <= maxim)
{ dreapta = candidat - 1; }
else
{ stanga = candidat + 1; }
}
if (prefix[stanga] + prefix.back() - prefix[(int)copie.size() - (luat - stanga)] >= minim)
{
vector <int> rezultat;
for (int indice = 0 ; indice < stanga ; indice++)
{ rezultat.push_back(copie[indice].second); }
for (int indice = (int)copie.size() - (luat - stanga) ; indice < (int)copie.size() ; indice++)
{ rezultat.push_back(copie[indice].second); }
return rezultat;
}
}
}
return vector <int> (0);
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
