제출 #1271615

#제출 시각아이디문제언어결과실행 시간메모리
1271615david_g611Detecting Molecules (IOI16_molecules)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "molecules.h"

using namespace std;
using ll=long long;

struct element
{
    ll val, idx;
    const bool operator < (const element &o) const{
        return val<o.val;
    }
};
vector<int> find_subset(int l, int u, vector<int> w)
{
    int n=w.size();
    element v[n+1];
    for(int i=0; i<n; i++)
    {
        v[i+1].idx=i;
        v[i+1].val=w[i];
    }
    sort(v+1, v+n+1);
    vector<ll> pref(n+1, 0);
    vector<ll> suf(n+1, 0);
    pref[1]=v[1].val;
    suf[n]=v[n].val;
    for(int i=2; i<=n; i++)pref[i]=pref[i-1]+v[i].val;
    for(int i=n-1; i>=1; i--)suf[i]=suf[i+1]+v[i].val;

    vector<int> ans;
    for(int k=1; k<=n; k++)
    {
        if(pref[k]<=u && suf[n-k+1]>=l)
        {
            for(int catest=k; catest>=0; catest--)
            {
                int catedr=k-catedr;
                ll val=pref[catest]+suf[n-catedr+1]
                if(l<=val && val<=u)
                {
                    for(int i=1; i<=n; i++)
                        if(i<=catest || i>=n-catedr+1)
                            ans.push_back(v[i].idx);
                    return ans;
                }
            }
        }
    }
    return ans;
}

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

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:40:17: error: expected ',' or ';' before 'if'
   40 |                 if(l<=val && val<=u)
      |                 ^~
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
      |         ^~~~