제출 #551019

#제출 시각아이디문제언어결과실행 시간메모리
551019Sergio_2357Detecting Molecules (IOI16_molecules)C++17
100 / 100
62 ms10400 KiB
#include "molecules.h" #include <bits/stdc++.h> using namespace std; #define ll long long std::vector<int> find_subset(int l, int u, vector<int> w) { ll sum = 0; vector<ll> a(w.size()); for (int i = 0; i < w.size(); i++) a[i] = w[i]; ll n = a.size(); vector<ll> us(n, 0); vector<pair<ll, ll>> ri(n); for (int i = 0; i < n; i++) ri[i] = { w[i], i }; sort(a.begin(), a.end()); sort(ri.begin(), ri.end()); ll s = 0; ll e = n - 1; while (sum < l && e >= 0) { us[e] = 1; sum += a[e]; e--; //cout << sum << endl; } e = n - 1; while (sum > u && s < e) { if (!us[e] || us[s]) break; us[e] = 0; us[s] = 1; sum -= a[e]; sum += a[s]; e--; s++; //cout << sum << endl; } if (sum >= l && sum <= u) { vector<int> res; for (int i = 0; i < n; i++) { if (us[i]) res.push_back(ri[i].second); } sort(res.begin(), res.end()); return res; } else { return vector<int>(0); } }

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

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:12:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |     for (int i = 0; i < w.size(); i++)
      |                     ~~^~~~~~~~~~
#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...