Submission #240229

#TimeUsernameProblemLanguageResultExecution timeMemory
240229tleontest1Detecting Molecules (IOI16_molecules)C++14
100 / 100
180 ms20396 KiB
#include "molecules.h" #pragma GCC optimize ("O3") #pragma GCC target ("sse4") #pragma GCC optimize ("unroll-loops") #pragma GCC target ("avx2") #include <bits/stdc++.h> using namespace std; typedef long long lo; typedef pair< lo,lo > PII; #define fi first #define se second #define mp make_pair #define endl "\n" #define pb push_back #define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL) #define FOR for(int i=1;i<=n;i++) #define mid ((start+end)/2) #define ort ((bas+son)/2) const lo inf = 10000000000000000; const lo KOK = 100000; const lo LOG = 30; const lo li = 500005; const lo mod = 1000000007; int n,m,b[li],a[li],k,flag,t; lo cev; string s; priority_queue<PII> use; vector<int> vv,vec; set<PII> v; std::vector<int> find_subset(int l, int u, std::vector<int> w) { for(int i=0;i<(int)w.size();i++){ v.insert({w[i],i}); } while(cev<l){ auto it=v.end(); if(it==v.begin())break; it--; PII p=*it; cev+=p.fi; use.push(mp(p.fi,p.se)); vv.pb(p.se); v.erase(it); } if(cev<l)return vec; if(cev<=u)return vv; //~ cout<<"**\n"; while(cev>u && v.size()){ auto it=v.begin(); PII p=use.top(); use.pop(); PII p1=*it; cev-=p.fi-p1.fi; use.push(p1); v.erase(it); } vv.clear(); while(use.size()){ vv.pb(use.top().se); use.pop(); } if(cev<l || cev>u)return vec; return vv; }
#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...