답안 #211049

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
211049 2020-03-19T06:18:11 Z SorahISA Job Scheduling (IOI19_job) C++17
컴파일 오류
0 ms 0 KB
#include "job.h"

// #pragma GCC target("avx2")
#pragma GCC optimize("O3", "unroll-loops")

// #include <bits/extc++.h>
// using namespace __gnu_pbds;

#include <bits/stdc++.h>
using namespace std;

#define int long long
// template <typename T>
// using pbds_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
using pii = pair<int, int>;
template<typename T>
using prior = priority_queue<T, vector<T>, greater<T>>;
template<typename T>
using Prior = priority_queue<T>;

#define X first
#define Y second
#define eb emplace_back

#define fastIO() ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define RANDOM() random_device __rd; \
                 mt19937 __gen = mt19937(__rd()); \
                 uniform_int_distribution<int> __dis(0, 1); \
                 auto rnd = bind(__dis, __gen);

const int INF = 1E18;
const int mod = 1E9 + 7;

struct Job {
    int need, mult, cost;
};

int scheduling_cost(vector<int32_t> p, vector<int32_t> u, vector<int32_t> d) {
    int n = p.size(), t = 0, ans = 0;
    vector<Job> v;
    for (int i = 0; i < n; ++i) v.eb({p[i], u[i], d[i]});
    
    sort(v.begin(), v.end(), [](auto a, auto b) {
        return a.cost*b.mult < b.cost*a.mult;
    });
    
    for (auto x : v) ans += (t += x.cost) * x.mult;
    return ans;
}

Compilation message

job.cpp: In function 'long long int scheduling_cost(std::vector<int>, std::vector<int>, std::vector<int>)':
job.cpp:41:56: error: no matching function for call to 'std::vector<Job>::emplace_back(<brace-enclosed initializer list>)'
     for (int i = 0; i < n; ++i) v.eb({p[i], u[i], d[i]});
                                                        ^
In file included from /usr/include/c++/7/vector:69:0,
                 from job.h:5,
                 from job.cpp:1:
/usr/include/c++/7/bits/vector.tcc:95:7: note: candidate: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp = Job; _Alloc = std::allocator<Job>; std::vector<_Tp, _Alloc>::reference = Job&]
       vector<_Tp, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/vector.tcc:95:7: note:   candidate expects 0 arguments, 1 provided