Submission #416746

# Submission time Handle Problem Language Result Execution time Memory
416746 2021-06-02T21:34:30 Z winstonyin Job Scheduling (CEOI12_jobs) C++11
15 / 100
517 ms 20716 KB
#include <string>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cmath>
#include <array>
#include <map>
#include <set>
#include <fstream>
#include <unordered_map>
#include <queue>
using namespace std;
using pi = pair<int, int>;
using pd = pair<double, double>; 
#define ll long long
#define all(x) (x).begin(), (x).end()
ll  days, delay, requests;
vector<pair<ll,ll>> seq;
bool works(ll  machines) {
    if(days*machines < requests) {
        return false;
    }
    ll  cur_day = 0; ll  cur_req = 0;
    while(cur_day < days && cur_req < requests) {
        for(ll  j = 0; j < machines; j++) {
            if(cur_req == requests) {
                break;
            }
            if(seq[cur_req].first <= cur_day+1) {
                if(cur_day+1 - seq[cur_req].first <= delay) {
                    cur_req++;
                }
                else {
                    return false;
                }
            }
            else {
                j = machines;
            }
        }
        cur_day++;
    }
    return cur_req == requests;
}
bool p_works(ll  machines) {
    if(days*machines < requests) {
        return false;
    }
    ll  cur_day = 0; ll  cur_req = 0;
    while(cur_day < days && cur_req < requests) {
        for(ll  j = 0; j < machines; j++) {
            if(cur_req == requests) {
                break;
            }
            if(seq[cur_req].first <= cur_day+1) {
                if(cur_day+1 - seq[cur_req].first <= delay) {
                    cout << seq[cur_req].second << " ";
                    cur_req++;
                }
                else {
                    return false;
                }
            }
            else {
                break;
            }
        }
        cout << 0 << endl;
        cur_day++;
    }
    return cur_req == requests;
}
int  main() {
    cin >> days >> delay >> requests;
    for(ll  i = 0; i < requests; i++) {
        ll  day; cin >> day;
        seq.push_back({day, i+1});
    }
    sort(all(seq));
    ll  a = 1, b = 1e9;
    ll  ans;
    while(a <= b) {
        ll  mid = (a+b)/2;
        // cout << a << " " << b << endl;
        if(works(mid)) {
            ans = mid;
            b = mid-1;
        }
        else {
            a = mid+1;
        }
    }
    cout << ans << endl;
    p_works(ans);
}

Compilation message

jobs.cpp: In function 'int main()':
jobs.cpp:96:12: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   96 |     p_works(ans);
      |     ~~~~~~~^~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 40 ms 2464 KB Unexpected end of file - int32 expected
2 Incorrect 42 ms 2484 KB Unexpected end of file - int32 expected
3 Incorrect 55 ms 2560 KB Unexpected end of file - int32 expected
4 Incorrect 41 ms 2480 KB Unexpected end of file - int32 expected
5 Incorrect 41 ms 2488 KB Unexpected end of file - int32 expected
6 Incorrect 40 ms 2568 KB Unexpected end of file - int32 expected
7 Incorrect 41 ms 2500 KB Unexpected end of file - int32 expected
8 Incorrect 41 ms 2480 KB Unexpected end of file - int32 expected
9 Incorrect 50 ms 2480 KB Unexpected end of file - int32 expected
10 Incorrect 48 ms 2556 KB Unexpected end of file - int32 expected
11 Incorrect 52 ms 2560 KB Unexpected end of file - int32 expected
12 Correct 103 ms 4792 KB Output is correct
13 Incorrect 159 ms 8616 KB Unexpected end of file - int32 expected
14 Correct 256 ms 9324 KB Output is correct
15 Correct 266 ms 11588 KB Output is correct
16 Incorrect 353 ms 16796 KB Unexpected end of file - int32 expected
17 Incorrect 429 ms 16760 KB Unexpected end of file - int32 expected
18 Incorrect 454 ms 18440 KB Unexpected end of file - int32 expected
19 Incorrect 517 ms 20716 KB Unexpected end of file - int32 expected
20 Incorrect 440 ms 16756 KB Unexpected end of file - int32 expected