제출 #714158

#제출 시각아이디문제언어결과실행 시간메모리
714158europiumDetecting Molecules (IOI16_molecules)C++17
0 / 100
1 ms340 KiB
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <numeric> #include <cmath> #include<iterator> #include <set> #include <map> #include <math.h> #include <iomanip> #include <unordered_set> #include <queue> #include <climits> #include "molecules.h" using namespace std; vector<int> ps; int sum(int l, int r){ return ps[r + 1] - ps[l]; } vector<int> find_subset(int a, int b, vector<int> w) { int n = w.size(); ps.resize(n + 1); vector<pair<int,int>> pos(n); for (int i = 0; i < n; i++){ pos[i].first = w[i]; pos[i].second = i; } sort(pos.begin(), pos.end()); // init ps for (int i = 0; i < n; i++){ ps[i + 1] = ps[i] + pos[i].first; } for (int k = 0; k < n; k++){ int l = 0, r = n - k - 1, mid, wsum; while (l < r){ mid = l + (r - l + 1) / 2; wsum = sum(mid, mid + k); if (wsum < a) r = mid - 1; else if (wsum > b) l = mid; else { vector<int> ans; for (int j = mid; j <= mid + k; j++) ans.push_back(pos[j].second); return ans; } } } }

컴파일 시 표준 에러 (stderr) 메시지

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:28:32: warning: control reaches end of non-void function [-Wreturn-type]
   28 |     vector<pair<int,int>> pos(n);
      |                                ^
#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...