Submission #743267

# Submission time Handle Problem Language Result Execution time Memory
743267 2023-05-17T09:18:58 Z vjudge1 Job Scheduling (CEOI12_jobs) C++17
0 / 100
378 ms 29312 KB
#include<bits/stdc++.h>

using namespace std;

struct deads
{
    int day,work,dead;
    bool operator<(const deads&d2)const{
        if(day==d2.day) return work>d2.work;
        return day<d2.day;
    }
};

vector<deads> vc,copys;
int n,d,m,a;
long long l = 1,ans = 1e14,r = 1e14;

int main()
{
    ios_base::sync_with_stdio(0),cin.tie(0);
    cin>>n>>d>>m;
    for(int i = 1; i<=m; ++i){
        cin>>a;
        vc.push_back({a,i,a+d});
    }
    sort(vc.begin(), vc.end());
    for(auto [day,work,dead]:vc){
        copys.push_back({day,work,dead});
    }
    while(l<r){
        long long mid = (l+r)>>1;
        long long cnt = 0;
        bool ck = 0;
        int ps = 0;
        for(int i = 0; i<vc.size(); ++i){
            if(vc[i].day+ps>=vc[i].dead){
                ck = 1;
                break;
            }
            ++cnt;
            if(cnt==mid){
                cnt = 0;
                ps++;
            }
            if(ck) break;
        }
        if(ck){
            ans = min(ans,mid);
            l = mid+1;
        }
        else r = mid;
        for(int i = 0; i<copys.size(); ++i){
            vc[i] = copys[i];
        }
    }
    int k = ans-1;
    cout<<k<<"\n";
    int cnt = 0,c = 0;
    for(auto [day,work,dead]:vc){
        if(cnt==k){
            cnt = 0;
            ++c;
            cout<<0<<"\n";
        }
        ++cnt;
        cout<<work<<" ";
    }
    if(c!=m) {
        cout<<"0\n";
        ++c;
    }
    for(int i = 0; i<n-c; ++i) cout<<0<<"\n";
}

Compilation message

jobs.cpp: In function 'int main()':
jobs.cpp:35:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<deads>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |         for(int i = 0; i<vc.size(); ++i){
      |                        ~^~~~~~~~~~
jobs.cpp:52:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<deads>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |         for(int i = 0; i<copys.size(); ++i){
      |                        ~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 29 ms 3784 KB Output isn't correct
2 Incorrect 28 ms 3800 KB Output isn't correct
3 Incorrect 30 ms 3816 KB Output isn't correct
4 Incorrect 29 ms 3784 KB Output isn't correct
5 Incorrect 29 ms 3784 KB Output isn't correct
6 Incorrect 32 ms 3820 KB Output isn't correct
7 Incorrect 27 ms 3784 KB Output isn't correct
8 Incorrect 29 ms 3764 KB Output isn't correct
9 Incorrect 53 ms 3816 KB Output isn't correct
10 Incorrect 42 ms 3784 KB Output isn't correct
11 Incorrect 36 ms 3756 KB Output isn't correct
12 Incorrect 69 ms 7288 KB Output isn't correct
13 Incorrect 108 ms 13016 KB Output isn't correct
14 Incorrect 146 ms 14288 KB Output isn't correct
15 Incorrect 186 ms 15568 KB Output isn't correct
16 Incorrect 238 ms 25792 KB Output isn't correct
17 Incorrect 297 ms 27020 KB Output isn't correct
18 Incorrect 337 ms 28156 KB Output isn't correct
19 Incorrect 378 ms 29312 KB Output isn't correct
20 Incorrect 324 ms 26964 KB Output isn't correct