제출 #1138415

#제출 시각아이디문제언어결과실행 시간메모리
1138415mrsmartypantsJob Scheduling (CEOI12_jobs)C++17
컴파일 에러
0 ms0 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; struct Request { int id, day; Request(int id, int day) : id(id), day(day) {} }; struct Return { bool worked; vector<vector<int>> schedule; Return(bool worked, vector<vector<int>> schedule) : worked(worked), schedule(schedule) {} }; vector<vector<int>> schedule; int N, D, M; Return test(int numMachines, vector<Request>& jobs) { vector<vector<int>> schedule(N); int reqNum = 0; for (int day = 1; day <= N; ++day) { for (int j = 0; j < numMachines; ++j) { if (reqNum >= M || jobs[reqNum].day > day) break; if (jobs[reqNum].day + D >= day) { schedule[day - 1].push_back(jobs[reqNum].id); ++reqNum; } else { return Return(false, schedule); } if (reqNum == M) return Return(true, schedule); } } return Return(false, schedule); } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> N >> D >> M; vector<Request> jobs(M); for (int i = 0; i < M; ++i) { cin >> jobs[i].day; jobs[i].id = i + 1; } sort(jobs.begin(), jobs.end(), [](const Request& a, const Request& b) { return a.day < b.day; }); int lo = 1, hi = M + 1; while (lo < hi) { int mid = lo + (hi - lo) / 2; Return r = test(mid, jobs); if (r.worked) { hi = mid; schedule = r.schedule; } else { lo = mid + 1; } } cout << lo << "\n"; for (int i = 0; i < N; ++i) { for (int idx : schedule[i]) { cout << idx << " "; } cout << "0\n"; } return 0; }

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

In file included from /usr/include/c++/11/bits/alloc_traits.h:33,
                 from /usr/include/c++/11/ext/alloc_traits.h:34,
                 from /usr/include/c++/11/bits/basic_string.h:40,
                 from /usr/include/c++/11/string:55,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/ostream:38,
                 from /usr/include/c++/11/iostream:39,
                 from jobs.cpp:1:
/usr/include/c++/11/bits/stl_construct.h: In instantiation of 'void std::_Construct(_Tp*, _Args&& ...) [with _Tp = Request; _Args = {}]':
/usr/include/c++/11/bits/stl_uninitialized.h:579:18:   required from 'static _ForwardIterator std::__uninitialized_default_n_1<_TrivialValueType>::__uninit_default_n(_ForwardIterator, _Size) [with _ForwardIterator = Request*; _Size = long unsigned int; bool _TrivialValueType = false]'
/usr/include/c++/11/bits/stl_uninitialized.h:640:20:   required from '_ForwardIterator std::__uninitialized_default_n(_ForwardIterator, _Size) [with _ForwardIterator = Request*; _Size = long unsigned int]'
/usr/include/c++/11/bits/stl_uninitialized.h:704:44:   required from '_ForwardIterator std::__uninitialized_default_n_a(_ForwardIterator, _Size, std::allocator<_Tp>&) [with _ForwardIterator = Request*; _Size = long unsigned int; _Tp = Request]'
/usr/include/c++/11/bits/stl_vector.h:1606:36:   required from 'void std::vector<_Tp, _Alloc>::_M_default_initialize(std::vector<_Tp, _Alloc>::size_type) [with _Tp = Request; _Alloc = std::allocator<Request>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]'
/usr/include/c++/11/bits/stl_vector.h:512:9:   required from 'std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const allocator_type&) [with _Tp = Request; _Alloc = std::allocator<Request>; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<Request>]'
jobs.cpp:46:27:   required from here
/usr/include/c++/11/bits/stl_construct.h:119:7: error: no matching function for call to 'Request::Request()'
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jobs.cpp:9:5: note: candidate: 'Request::Request(int, int)'
    9 |     Request(int id, int day) : id(id), day(day) {}
      |     ^~~~~~~
jobs.cpp:9:5: note:   candidate expects 2 arguments, 0 provided
jobs.cpp:7:8: note: candidate: 'constexpr Request::Request(const Request&)'
    7 | struct Request {
      |        ^~~~~~~
jobs.cpp:7:8: note:   candidate expects 1 argument, 0 provided
jobs.cpp:7:8: note: candidate: 'constexpr Request::Request(Request&&)'
jobs.cpp:7:8: note:   candidate expects 1 argument, 0 provided