Submission #743263

# Submission time Handle Problem Language Result Execution time Memory
743263 2023-05-17T09:17:42 Z vjudge1 Job Scheduling (CEOI12_jobs) C++17
0 / 100
388 ms 29332 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-1);
            l = mid+1;
        }
        else r = mid;
        for(int i = 0; i<copys.size(); ++i){
            vc[i] = copys[i];
        }
    }
    int k = ans;
    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";
    for(int i = 0; i<n-c-1; ++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 30 ms 3784 KB Output isn't correct
2 Incorrect 34 ms 3784 KB Output isn't correct
3 Incorrect 29 ms 3784 KB Output isn't correct
4 Incorrect 33 ms 3784 KB Output isn't correct
5 Incorrect 28 ms 3784 KB Output isn't correct
6 Incorrect 31 ms 3804 KB Output isn't correct
7 Incorrect 43 ms 3688 KB Output isn't correct
8 Incorrect 35 ms 3784 KB Output isn't correct
9 Incorrect 44 ms 3784 KB Output isn't correct
10 Incorrect 47 ms 3812 KB Output isn't correct
11 Incorrect 48 ms 3784 KB Output isn't correct
12 Incorrect 94 ms 7192 KB Output isn't correct
13 Incorrect 114 ms 13068 KB Output isn't correct
14 Incorrect 171 ms 14252 KB Output isn't correct
15 Incorrect 238 ms 15512 KB Output isn't correct
16 Incorrect 258 ms 25788 KB Output isn't correct
17 Incorrect 300 ms 26964 KB Output isn't correct
18 Incorrect 366 ms 28060 KB Output isn't correct
19 Incorrect 388 ms 29332 KB Output isn't correct
20 Incorrect 302 ms 26996 KB Output isn't correct