제출 #1197767

#제출 시각아이디문제언어결과실행 시간메모리
1197767vivkostovDetecting Molecules (IOI16_molecules)C++20
100 / 100
40 ms4936 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
long long int n,l,r,otg[200005];
vector<int>v;
struct cell
{
    int st,ind;
};
bool cmp(cell a1,cell a2)
{
    return a1.st<a2.st;
}
cell a[200005];
std::vector<int> find_subset(int L, int R, std::vector<int> W)
{
    n=W.size();
    l=L;
    r=R;
    for(int i=1;i<=n;i++)
    {
        a[i].st=W[i-1];
        a[i].ind=i;
    }
    sort(a+1,a+n+1,cmp);
    long long int sum=0;
    for(int i=n;i>=1;i--)
    {
        sum+=a[i].st;
        otg[i]=1;
        if(sum>=l)break;
    }
    if(sum<l)return v;
    int to=1,i=n;
    while(sum>r)
    {
        if(!otg[i]||otg[to]||i<=to)break;
        sum+=a[to].st;
        sum-=a[i].st;
        otg[i]=0;
        otg[to]=1;
        i--;
        to++;
    }
    if(sum>r)
    {
        v.clear();
        return v;
    }
    for(int i=1;i<=n;i++)
    {
        if(otg[i])
        {
            v.push_back(a[i].ind-1);
        }
    }
    return v;
}

컴파일 시 표준 에러 (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...