제출 #1212872

#제출 시각아이디문제언어결과실행 시간메모리
1212872BigBadBullyArt Collections (BOI22_art)C++20
컴파일 에러
0 ms0 KiB
#include <cstdarg>
#include <cstdio>
#include <cstdlib>
#include <set>
#include <vector>

#include "art.h"

using namespace std;

void solve(signed N)
{
    int n = N;
    auto comp = [&](int x,int y)->bool
    {
        //x < y
        vector<int> tr;
        tr.push_back(x+1);
        tr.push_back(y+1);
        for (int i = 0; i < n; i++)
            if (i != x && i != y)
                tr.push_back(i+1);
        int a = publish(tr);
        swap(tr[0],tr[1]);
        int b = publish(tr);
        return a < b;
    };
    function<vector<int>(vector<int>)> srt = [&](vector<int> v)->vector<int>
    {
        vector<int> a,b;
        if (v.size()<=1)
            return v;
        int piv = rand()%(v.size());
        for (int i = 0; i < v.size(); i++)
        {
            if (i == piv)
                continue;
            if (comp(v[piv],v[i]))
                b.push_back(v[i]);
            else
                a.push_back(v[i]);
        }
        vector<int> res;
        res = srt(a);
        res.push_back(v[piv]);
        auto vec = srt(b);
        for (int x:vec)
            res.push_back(x);
        return res;
    };
    vector<int> bs(n,0);
    for (int i = 0; i < n; i++)
        bs[i] = i;
    auto ans = srt(bs);
    for (int&x:ans)x++;
    answer(ans);
    
};

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

art.cpp: In function 'void solve(int)':
art.cpp:28:5: error: 'function' was not declared in this scope
   28 |     function<vector<int>(vector<int>)> srt = [&](vector<int> v)->vector<int>
      |     ^~~~~~~~
art.cpp:8:1: note: 'std::function' is defined in header '<functional>'; did you forget to '#include <functional>'?
    7 | #include "art.h"
  +++ |+#include <functional>
    8 | 
art.cpp:28:25: error: expected primary-expression before '(' token
   28 |     function<vector<int>(vector<int>)> srt = [&](vector<int> v)->vector<int>
      |                         ^
art.cpp:28:37: error: expected primary-expression before ')' token
   28 |     function<vector<int>(vector<int>)> srt = [&](vector<int> v)->vector<int>
      |                                     ^
art.cpp:28:40: error: 'srt' was not declared in this scope
   28 |     function<vector<int>(vector<int>)> srt = [&](vector<int> v)->vector<int>
      |                                        ^~~