제출 #239227

#제출 시각아이디문제언어결과실행 시간메모리
239227lakshith_Detecting Molecules (IOI16_molecules)C++14
9 / 100
5 ms384 KiB
#include <bits/stdc++.h> #define pb push_back using namespace std; vector <int> find_subset (int l, int u, vector <int> w){ int n=w.size(); bool equal = true; int tmp = w[0]; for(int i=0;i<n;i++)if(w[i]!=tmp){equal=false;break;} if(equal){ vector<int> result; int m=0,sum=0; for(int i=0;i<n;i++) if(sum>=l&&sum<=u&&sum!=0)break; else sum+=w[i]; if(sum>=l&&sum<=u){ m = sum/w[0]; for(int i=0;i<m;i++)result.pb(i); } return result; }else{ int a=0,b=0; vector<pair<int,int>> vec; for(int i=0;i<n;i++)vec.pb({w[i],i}); sort(vec.begin(),vec.end()); int MIN = w[0]; int MAX = w[vec.size()-1]; for(int i=0;i<w.size();i++)if(w[i]==MIN)a++;else b++; int A = -1,B=-1; for(int i=0;i<=a;i++) for(int j=0;j<=b;j++) if(i*MIN+j*MAX<=u && i*MIN+j*MAX>=l){A=i,B=j;i=a+1;break;} vector<int> r; if(A==-1||B==-1)return r; int pos=0; for(int i=0;i<A;i++)r.pb(vec.at(pos++).second); pos = vec.size()-1; for(int i=0;i<B;i++)r.pb(vec.at(pos--).second); return r; } }

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

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:30:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<w.size();i++)if(w[i]==MIN)a++;else b++;
                 ~^~~~~~~~~
#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...