제출 #483134

#제출 시각아이디문제언어결과실행 시간메모리
483134jsn667Job Scheduling (CEOI12_jobs)C++17
0 / 100
496 ms39708 KiB
# include <bits/stdc++.h> using namespace std; struct Job{ int index, day, deadline; }; vector<Job> a; int n, d, m; bool cmp(Job a, Job b){ return a.deadline < b.deadline; } int main(){ cin >> n >> d >> m; a.resize(m + 1); for(int i = 1; i <= m; i++){ Job j; j.index = i; cin >> j.day; j.deadline = j.day + d; a[i] = j; } sort(a.begin(), a.end(), cmp); int L = 1, R = m; int res = 0; vector<vector<int>> resv; while(L <= R){ int mid = L + (R - L) / 2; int finished = 0; bool valid = true; vector<vector<int>> out(n + 1); for(int i = 1, j = 1; i <= n; i++){ int machines = mid; while(j <= m && i >= a[j].day && machines > 0){ if(i > a[j].deadline){ valid = false; break; } out[i].push_back(a[j].index); machines--; j++; finished++; } if(!valid) break; out[i].push_back(0); } if(finished == m){ R = mid - 1; res = mid; resv = out; } else{ L = mid + 1; } } cout << res << "\n"; for(int i = 1; i <= n; i++){ for(int j = 0; j < resv[i].size(); j++){ cout << resv[i][j] << " "; } cout << "\n"; } return 0; }

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

jobs.cpp: In function 'int main()':
jobs.cpp:67:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |   for(int j = 0; j < resv[i].size(); j++){
      |                  ~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...