Submission #743248

# Submission time Handle Problem Language Result Execution time Memory
743248 2023-05-17T09:10:38 Z vjudge1 Job Scheduling (CEOI12_jobs) C++17
0 / 100
394 ms 29720 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,ans = 1e9+7;
long long l = 1,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) l = mid+1;
        else r = mid;
        for(int i = 0; i<copys.size(); ++i){
            vc[i] = copys[i];
        }
    }
    int k = m/l+(m%l!=0);
    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-l; ++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:49:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<deads>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |         for(int i = 0; i<copys.size(); ++i){
      |                        ~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 36 ms 4040 KB Output isn't correct
2 Incorrect 35 ms 3980 KB Output isn't correct
3 Incorrect 37 ms 4040 KB Output isn't correct
4 Incorrect 34 ms 4036 KB Output isn't correct
5 Incorrect 35 ms 4040 KB Output isn't correct
6 Incorrect 36 ms 4020 KB Output isn't correct
7 Incorrect 33 ms 4068 KB Output isn't correct
8 Incorrect 33 ms 4040 KB Output isn't correct
9 Incorrect 63 ms 4032 KB Output isn't correct
10 Incorrect 45 ms 3960 KB Output isn't correct
11 Incorrect 36 ms 4024 KB Output isn't correct
12 Incorrect 87 ms 7428 KB Output isn't correct
13 Incorrect 137 ms 13312 KB Output isn't correct
14 Incorrect 152 ms 14764 KB Output isn't correct
15 Incorrect 229 ms 16924 KB Output isn't correct
16 Incorrect 266 ms 26228 KB Output isn't correct
17 Incorrect 293 ms 27288 KB Output isn't correct
18 Incorrect 360 ms 28464 KB Output isn't correct
19 Incorrect 394 ms 29720 KB Output isn't correct
20 Incorrect 340 ms 27428 KB Output isn't correct