제출 #975669

#제출 시각아이디문제언어결과실행 시간메모리
975669vjudge1Job Scheduling (CEOI12_jobs)C++17
100 / 100
425 ms17336 KiB


#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;


int n, m, d;
vector< pair<int,int> > jobs;


bool isok(int x) {//each day can process x jobs.
   int j = 0;
   for (int i = 1; i <= n; i++) {
       int count = x;
       while (j < m && jobs[j].first <= i && count > 0) {
           if (i - jobs[j].first > d) return false;
           j++;
           count--;
       }
   }
   return j == m;
}


int main() {
   cin >> n >> d >> m;
   jobs = vector< pair<int,int> >(m);
   for (int i = 0; i < m; i++) {
       cin >> jobs[i].first;
       jobs[i].second = i+1;
   }
   sort(jobs.begin(),jobs.end());
   int l = 1, r = m;
   int mid;
   int ans;
   while (l <= r) {
       mid = (l+r)/2;
       if (isok(mid)) {
           ans = mid;
           r = mid -1;
       }
       else {l = mid+1; }
   }
   cout << ans << '\n';
   int j = 0;
   for (int i = 1; i <= n; i++) {
       int count = ans;
       while (j < m && jobs[j].first <= i && count > 0) {
           cout << jobs[j].second << " ";
           j++;
           count--;
       }
       cout << 0 << endl;
   }
   return 0;
}

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

jobs.cpp: In function 'int main()':
jobs.cpp:38:8: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   38 |    int ans;
      |        ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...