Submission #1235277

#TimeUsernameProblemLanguageResultExecution timeMemory
1235277coco2311Detecting Molecules (IOI16_molecules)C++17
0 / 100
0 ms320 KiB
#include "molecules.h"
#include <vector>
#include <algorithm>
using namespace std;

#define f first
#define s second

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    int x = u/w[0];
    int N=w.size();
    vector<pair<int,int>> b;
    for(int i=0;i<N;i++){
        b[i].f=w[i];
        b[i].s=i;
    }
    sort(b.begin(),b.end());
    if(b[0].f==b[N-1].f){
        vector<int> v;
        if(x<=N && x*w[0]>=l && x*w[0]<=u){
            for(int i=0;i<x;i++){
                v.push_back(i);
            }
        }
        return v;
    }
    else{
        vector<int> v;
        int v1=0,v2=0;
        int c1=0,c2=0,d1=-1,d2=-1;
        for(int i=0;i<N;i++){
            if(b[i].f==b[0].f){
                v1++;
            }
            else{
                v2++;
            }
        }
        for(int i=0;i<v1;i++){
            if(d1!=-1)break;
            for(int j=0;j<v2;j++){
                if((b[0].f*i + b[N-1].f * j)<=u && (b[0].f*i + b[N-1].f * j)>=l){
                    d1=c1;d2=c2;
                    break;
                }
            }
        }
        if(d1==-1){
            return v;
        }
        for(int i=0;i<d1;i++){
            v.push_back(b[i].s);
        }
        for(int i=0;i<d2;i++){
            v.push_back(b[N-1-i].s);
        }
        return v;
    }
    return vector<int>(0);
}

Compilation message (stderr)

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...