Submission #743251

# Submission time Handle Problem Language Result Execution time Memory
743251 2023-05-17T09:11:37 Z vjudge1 Job Scheduling (CEOI12_jobs) C++17
0 / 100
370 ms 29240 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;
    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 33 ms 3784 KB Output isn't correct
2 Incorrect 37 ms 3784 KB Output isn't correct
3 Incorrect 35 ms 3776 KB Output isn't correct
4 Incorrect 31 ms 3784 KB Output isn't correct
5 Incorrect 32 ms 3784 KB Output isn't correct
6 Incorrect 34 ms 3720 KB Output isn't correct
7 Incorrect 34 ms 3784 KB Output isn't correct
8 Incorrect 35 ms 3784 KB Output isn't correct
9 Incorrect 45 ms 3672 KB Output isn't correct
10 Incorrect 40 ms 3816 KB Output isn't correct
11 Incorrect 38 ms 3768 KB Output isn't correct
12 Incorrect 68 ms 7224 KB Output isn't correct
13 Incorrect 110 ms 13068 KB Output isn't correct
14 Incorrect 159 ms 14228 KB Output isn't correct
15 Incorrect 230 ms 16540 KB Output isn't correct
16 Incorrect 242 ms 25772 KB Output isn't correct
17 Incorrect 280 ms 26896 KB Output isn't correct
18 Incorrect 353 ms 28124 KB Output isn't correct
19 Incorrect 370 ms 29240 KB Output isn't correct
20 Incorrect 283 ms 26904 KB Output isn't correct