제출 #239224

#제출 시각아이디문제언어결과실행 시간메모리
239224lakshith_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;
    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...