제출 #696428

#제출 시각아이디문제언어결과실행 시간메모리
696428cfjasonJob Scheduling (CEOI12_jobs)C++17
90 / 100
1093 ms10604 KiB
#include <bits/stdc++.h> using namespace std; int main(int argc, char const *argv[]) { ios::sync_with_stdio(false); cin.tie(nullptr); int n, d, m; cin >> n >> d >> m; vector<vector<int>> requestsByDay(n); for (int i = 0; i < m; i++) { int day; cin >> day; requestsByDay[day-1].push_back(i+1); } int lower = 0, upper = m+1; while (lower + 1 < upper) { int mid = (lower + upper) / 2; int reqIndex = 0; priority_queue<array<int, 2>, vector<array<int, 2>>, greater<>> line; bool valid = true; for (int i = 0; i < n; i++) { for (int j = 0; j < requestsByDay[i].size(); j++) line.push(array<int, 2>{i, requestsByDay[i][j]}); for (int j = 0; j < mid; j++) { if (line.size()) { if (i - line.top()[0] > d) { valid = false; break; } line.pop(); } else { break; } } if (!valid) break; } if (line.size()) valid = false; if(valid){ upper = mid; } else{ lower = mid; } } cout << upper << endl; priority_queue<array<int, 2>, vector<array<int, 2>>, greater<>> line; int mid = upper; for (int i = 0; i < n; i++) { for (int j = 0; j < requestsByDay[i].size(); j++) line.push(array<int, 2>{i, requestsByDay[i][j]}); for (int j = 0; j < mid; j++) { if (line.size()) { cout << to_string(line.top()[1]) << " "; line.pop(); } else { break; } } cout << "0" << endl; } return 0; }

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

jobs.cpp: In function 'int main(int, const char**)':
jobs.cpp:27:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |             for (int j = 0; j < requestsByDay[i].size(); j++)
      |                             ~~^~~~~~~~~~~~~~~~~~~~~~~~~
jobs.cpp:22:13: warning: unused variable 'reqIndex' [-Wunused-variable]
   22 |         int reqIndex = 0;
      |             ^~~~~~~~
jobs.cpp:63:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |             for (int j = 0; j < requestsByDay[i].size(); j++)
      |                             ~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...