제출 #384521

#제출 시각아이디문제언어결과실행 시간메모리
384521meperdonas203Detecting Molecules (IOI16_molecules)C++17
100 / 100
52 ms7276 KiB
#include "molecules.h"
#include<bits/stdc++.h>
using namespace std;
struct dato{
  long long int valor;
  int poscicion;
};
const bool operator<(const dato &a, const dato& b){
  return a.valor<b.valor;
}
std::vector<int> find_subset(int l, int u, vector<int> w) {
    int ini=0;
    int fin=0;
    int N=w.size();
    vector<dato>mapa(N,{0,0});
    vector<int>solucion;
    for(int i=0;i<w.size();i++){
      mapa[i].poscicion=i;
      mapa[i].valor=w[i];
    }
    sort(mapa.begin(),mapa.end());
    long long int suma=0;
    while(fin<N){
      suma+=mapa[fin].valor;
      if(suma>u){
        suma-=mapa[ini].valor;
        ini++;
      }
      if(l<=suma&&suma<=u){
        for(int i=ini;i<=fin;i++){
          solucion.push_back(mapa[i].poscicion);
        }
        break;
      }
      fin++;
    }
    sort(solucion.begin(),solucion.end());
    return solucion;
}

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

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:17:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     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...