제출 #232613

#제출 시각아이디문제언어결과실행 시간메모리
232613UserIsUndefinedDetecting Molecules (IOI16_molecules)C++14
0 / 100
5 ms384 KiB
#include <bits/stdc++.h> #include "molecules.h" using namespace std; long long presum[200005]; std::vector<int> find_subset(int l, int u, std::vector<int> w) { int n = w.size(); vector<pair<int,int>> v; for (int i = 0 ; i < n ; i++){ v.push_back({w[i], i}); } sort(v.begin(), v.end()); for (int i = 0 ; i < n ; i++){ if (i == 0)presum[i] = v[i].first; else presum[i] = presum[i-1] + v[i].first; } vector<int> ans; for (int i = 1 ; i <= n ; i++){ if (presum[i-1] > u)return ans; if (presum[n-1] - presum[n-1-i] < l)continue; long long sum = 0; for (int j = 0 ; j < i ; j++){ sum+= v[j].first; } bool ok = false; int x = 0; int y = i; while(y < n){ if ((sum >= l)&&(sum <= u)){break; ok = true;} else if (sum < l){ sum+= v[y].first; y++; } else if (sum > u){ sum-= v[x].first; x++; } } if (ok){ for (int j = x ; j < y ; j++){ ans.push_back(v[j].second); } return ans; } } 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...