제출 #532870

#제출 시각아이디문제언어결과실행 시간메모리
532870louiskwokJob Scheduling (CEOI12_jobs)C++17
15 / 100
201 ms12188 KiB
#include <bits/stdc++.h>
using namespace std;
struct Job {
    int id;
    int day;
    bool operator<(const Job arb) const { return day < arb.day; }
} job[100005];
multiset <Job> ms;
int d;
bool possible(int x) {
    int daycnt = 0;
    auto it=ms.begin();
    while (it!=ms.end()) {
        int cnt = 0;
        daycnt++;
        for (;it!=ms.end()&&cnt<x;it++) {
            if ((*it).day+d<daycnt) return false;
            cnt++;
        }
    }
    return true;
}
int main() {
    int n,m,a;
    cin >> n >> d >> m;
    for (int i=1;i<=m;i++) {
        cin >> job[i].day;
        job[i].id = i;
        ms.insert(job[i]);
    }
    int lo = 1,hi = 1000000;
    while (lo<hi) {
        int mid = lo+(hi-lo)/2;
        if (possible(mid)) hi = mid;
        else lo = mid+1;
    }
    cout << lo << endl;
    auto it=ms.begin();
    int daycnt = 0;
    while (it!=ms.end()) {
        daycnt++;
        int cnt = 0;
        for (;it!=ms.end()&&cnt<lo;it++) {
            cnt++;
            cout << (*it).id << ' ';
        }
        cout << 0 << endl;
    }
    for (int i=daycnt;i<n;i++) cout << 0 << endl;
    return 0;
}

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

jobs.cpp: In function 'int main()':
jobs.cpp:24:13: warning: unused variable 'a' [-Wunused-variable]
   24 |     int n,m,a;
      |             ^
#Verdict Execution timeMemoryGrader output
Fetching results...