Submission #831223

# Submission time Handle Problem Language Result Execution time Memory
831223 2023-08-20T00:17:26 Z TimAni Job Scheduling (CEOI12_jobs) C++17
0 / 100
198 ms 17212 KB
#include <algorithm>
#include <cassert>
#include <cstdio>
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <numeric>
#include <stack>
#include <queue>
#include <cmath>

//#ifndef ONLINE_JUDGE
//#include "/home/linux/Learning/headers/debug.h"
//#else
//#define debug(...)
//#endif

using namespace std;
using ll = long long;

void setIO(string File_name) {
    cin.tie(0)->sync_with_stdio(0);
    if (File_name.size()) {
        freopen((File_name + ".in").c_str(), "r", stdin);
        freopen((File_name + ".out").c_str(), "w", stdout);
    }
}


void sol() {
    int n, d, m;
    cin >> n >> d >> m;
    vector<pair<int, int>> v(m);
    for (int i = 0; i < m; i++)
        cin >> v[i].first, v[i].second = i + 1;
    sort(v.begin(), v.end());
    auto good = [&](int mid) {
        int day = v[0].first;
        int free = mid;
        for (int i = 0; i < m;) {
            while (i < m && v[i].first <= day && free > 0) {
                if (day - v[i].first > d) return false;
                i++;
                free--;
            }
            day++;
            free = mid;
        }
        return true;
    };

    int l = 0, r = m;
    while (r - l > 1) {
        int mid = l + (r - l) / 2;
        if (good(mid))
            r = mid;
        else
            l = mid;
    }
    cout << r << '\n';
    int day = v[0].first;
    int free = r;
    for (int i = 0, j = 1; j <= n; j++) {
        while (i < m && v[i].first <= day && free > 0) {
            cout << v[i].second << ' ';
            i++;
            free--;
        }
        cout << "0 \n";
        day++;
        free = r;
    }
}

int main() {
    setIO("");
    int T = 1;
    //cin >> T;
    while (T--) sol();
    return 0;
}



Compilation message

jobs.cpp: In function 'void setIO(std::string)':
jobs.cpp:26:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |         freopen((File_name + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jobs.cpp:27:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |         freopen((File_name + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 14 ms 2004 KB Expected EOLN
2 Incorrect 17 ms 2004 KB Expected EOLN
3 Incorrect 19 ms 2000 KB Expected EOLN
4 Incorrect 19 ms 1928 KB Expected EOLN
5 Incorrect 14 ms 2004 KB Expected EOLN
6 Incorrect 14 ms 2004 KB Expected EOLN
7 Incorrect 14 ms 2020 KB Expected EOLN
8 Incorrect 17 ms 2000 KB Expected EOLN
9 Incorrect 22 ms 2272 KB Expected EOLN
10 Incorrect 26 ms 2252 KB Expected EOLN
11 Incorrect 20 ms 1988 KB Expected EOLN
12 Incorrect 42 ms 3940 KB Expected EOLN
13 Incorrect 62 ms 5728 KB Expected EOLN
14 Incorrect 86 ms 8056 KB Expected EOLN
15 Incorrect 103 ms 9472 KB Expected EOLN
16 Incorrect 135 ms 12108 KB Expected EOLN
17 Incorrect 151 ms 13880 KB Expected EOLN
18 Incorrect 170 ms 15140 KB Expected EOLN
19 Incorrect 198 ms 17212 KB Expected EOLN
20 Incorrect 152 ms 13880 KB Expected EOLN