Submission #679718

#TimeUsernameProblemLanguageResultExecution timeMemory
679718senthetaDetecting Molecules (IOI16_molecules)C++17
10 / 100
1 ms340 KiB
#include "molecules.h" // author : sentheta aka vanwij #include<iostream> #include<iomanip> #include<algorithm> #include<cassert> #include<random> #include<chrono> #include<cmath> #include<string> #include<vector> #include<bitset> #include<queue> #include<stack> #include<map> #include<set> using namespace std; #define Int long long #define V vector #define pii pair<int,int> #define ff first #define ss second #define rand() (uniform_int_distribution<int>(0,1<<30)(rng)) mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); #define pow2(x) (1LL<<(x)) #define msb(x) (63-__builtin_clzll(x)) #define bitcnt(x) (__builtin_popcountll(x)) #define nl '\n' #define _ << ' ' << #define all(x) (x).begin(), (x).end() #define rep(i,a,b) for(int i = (int)(a); i < (int)(b); i++) #define dbg(x) if(1) cout << "?" << #x << " : " << (x) << endl << flush; int n; Int l, r; V<Int> a; V<int> ans; V<int> find_subset(int _l,int _r,V<int> _a){ a = V<Int>(all(_a)); l=_l; r=_r; n = a.size(); V<int> ord; rep(i,0,n) ord.push_back(i); sort(all(ord),[&](int i,int j){ return a[i] < a[j]; }); Int sum = 0; rep(i,0,n){ if(sum+a[ord[i]]<=r){ sum += a[ord[i]]; ans.push_back(ord[i]); } } // dbg(sum); int i=0, j=n-1; while(sum<l && i<j && i<a.size()){ sum += a[ord[j]]-a[ord[i]]; ans[i] = ord[j]; j--; i++; } if(l<=sum && sum<=r){ sort(all(ans)); return ans; } return {}; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:65:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |  while(sum<l && i<j && i<a.size()){
      |                        ~^~~~~~~~~
#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...