Submission #783496

# Submission time Handle Problem Language Result Execution time Memory
783496 2023-07-15T01:48:50 Z horiiseun Job Scheduling (CEOI12_jobs) C++17
0 / 100
209 ms 18660 KB
#include <iostream>
#include <vector>
#include <tuple>
#include <queue>
#include <stack>
#include <deque>
#include <set>
#include <map>
#include <cmath>
#include <random>
#include <string>
#include <bitset>
#include <cassert>
#include <climits>
#include <algorithm>
#include <unordered_set>
#include <unordered_map>
using namespace std;
 
#define ll long long
#define f first
#define s second
 
void __print(int x) { cerr << x; }
void __print(long x) { cerr << x; }
void __print(long long x) { cerr << x; }
void __print(unsigned x) { cerr << x; }
void __print(unsigned long x) { cerr << x; }
void __print(unsigned long long x) { cerr << x; }
void __print(float x) { cerr << x; }
void __print(double x) { cerr << x; }
void __print(long double x) { cerr << x; }
void __print(char x) { cerr << '\'' << x << '\''; }
void __print(const char *x) { cerr << '\"' << x << '\"'; }
void __print(const string &x) { cerr << '\"' << x << '\"'; }
void __print(bool x) { cerr << (x ? "true" : "false"); }
 
template<typename A> void __print(const A &x);
template<typename A, typename B> void __print(const pair<A, B> &p);
template<typename... A> void __print(const tuple<A...> &t);
template<typename T> void __print(stack<T> s);
template<typename T> void __print(queue<T> q);
template<typename T, typename... U> void __print(priority_queue<T, U...> q);
 
template<typename A> void __print(const A &x) {
    bool first = true;
    cerr << '{';
    for (const auto &i : x) {
        cerr << (first ? "" : ","), __print(i);
        first = false;
    }
    cerr << '}';
}
 
template<typename A, typename B> void __print(const pair<A, B> &p) {
    cerr << '(';
    __print(p.f);
    cerr << ',';
    __print(p.s);
    cerr << ')';
}
 
template<typename... A> void __print(const tuple<A...> &t) {
    bool first = true;
    cerr << '(';
    apply([&first] (const auto &...args) { ((cerr << (first ? "" : ","), __print(args), first = false), ...); }, t);
    cerr << ')';
}
 
template<typename T> void __print(stack<T> s) {
    vector<T> debugVector;
    while (!s.empty()) {
        T t = s.top();
        debugVector.push_back(t);
        s.pop();
    }
    reverse(debugVector.begin(), debugVector.end());
    __print(debugVector);
}
 
template<typename T> void __print(queue<T> q) {
    vector<T> debugVector;
    while (!q.empty()) {
        T t = q.front();
        debugVector.push_back(t);
        q.pop();
    }
    __print(debugVector);
}
 
template<typename T, typename... U> void __print(priority_queue<T, U...> q) {
    vector<T> debugVector;
    while (!q.empty()) {
        T t = q.top();
        debugVector.push_back(t);
        q.pop();
    }
    __print(debugVector);
}
 
void _print() { cerr << "]\n"; }
 
template <typename Head, typename... Tail> void _print(const Head &H, const Tail &...T) {
    __print(H);
    if (sizeof...(T)) cerr << ", ";
    _print(T...);
}
 
#ifdef DEBUG
	#define D(...) cerr << "Line: " << __LINE__ << " [" << #__VA_ARGS__ << "] = ["; _print(__VA_ARGS__)
#else
    #define D(...)
#endif

int n, d, m, l, r, md, t[1000005];
vector<pair<int, int>> jobs;
vector<vector<int>> ans;

bool valid(int x) {
    vector<int> tmp;
    int idx = 0;
    for (int i = 1; i <= n; i++) {
        while (idx < m && jobs[idx].f <= i && tmp.size() < x) {
            tmp.push_back(jobs[idx].s);
            idx++;
        }
        if (tmp.size() == x) {
            for (int j : tmp) {
                if (t[j] + d < i) {
                    return false;
                }
            }
            ans.push_back(tmp);
            tmp.clear();
        }
    }
    if (tmp.size()) {
        for (int j : tmp) {
            if (t[j] + d < n) {
                return false;
            }
        }
        ans.push_back(tmp);
        tmp.clear();
    }
    while (ans.size() < n) {
        ans.push_back(tmp);
    }
    return true;
}

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin >> n >> d >> m;
    for (int i = 1; i <= m; i++) {
        cin >> t[i];
        jobs.push_back({t[i], i});
    }
    sort(jobs.begin(), jobs.end());

    l = 0, r = 1e6 + 5;
    while (l + 1 != r) {
        md = (l + r) / 2;
        ans.clear();
        if (valid(md)) r = md;
        else l = md;
    }

    cout << r << "\n";

    for (vector<int> v : ans) {
        for (int i : v) {
            cout << i << " ";
        }
        cout << 0 << "\n";
    }

}

Compilation message

jobs.cpp: In function 'bool valid(int)':
jobs.cpp:123:58: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  123 |         while (idx < m && jobs[idx].f <= i && tmp.size() < x) {
      |                                               ~~~~~~~~~~~^~~
jobs.cpp:127:24: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  127 |         if (tmp.size() == x) {
      |             ~~~~~~~~~~~^~~~
jobs.cpp:146:23: warning: comparison of integer expressions of different signedness: 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  146 |     while (ans.size() < n) {
      |            ~~~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Incorrect 14 ms 2432 KB Output isn't correct
2 Incorrect 14 ms 2464 KB Output isn't correct
3 Incorrect 15 ms 2504 KB Output isn't correct
4 Incorrect 14 ms 2504 KB Output isn't correct
5 Incorrect 14 ms 2424 KB Output isn't correct
6 Incorrect 14 ms 2504 KB Output isn't correct
7 Incorrect 14 ms 2424 KB Output isn't correct
8 Incorrect 14 ms 2424 KB Output isn't correct
9 Incorrect 26 ms 2432 KB Output isn't correct
10 Incorrect 23 ms 2432 KB Output isn't correct
11 Incorrect 20 ms 2436 KB Output isn't correct
12 Incorrect 41 ms 4556 KB Output isn't correct
13 Incorrect 64 ms 7220 KB Output isn't correct
14 Incorrect 87 ms 8776 KB Output isn't correct
15 Incorrect 103 ms 10268 KB Output isn't correct
16 Incorrect 142 ms 13972 KB Output isn't correct
17 Incorrect 159 ms 15512 KB Output isn't correct
18 Incorrect 178 ms 17076 KB Output isn't correct
19 Incorrect 209 ms 18660 KB Output isn't correct
20 Incorrect 162 ms 15480 KB Output isn't correct