Submission #743316

# Submission time Handle Problem Language Result Execution time Memory
743316 2023-05-17T09:45:44 Z vjudge1 Job Scheduling (CEOI12_jobs) C++17
0 / 100
460 ms 58368 KB
#include<bits/stdc++.h>
#define int long long

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;
int l = 1,ans = 1e14,r = 1e14;

signed 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){
        int mid = (l+r)>>1;
        int 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;
            }
            if(cnt==mid){
                cnt = 0;
                ps++;
            }
            ++cnt;
        }
        if(ck){
            l = mid+1;
        }
        else{
            ans = min(ans,mid);
            r = mid-1;
        }
        for(int i = 0; i<copys.size(); ++i){
            vc[i] = copys[i];
        }
    }
    int k = ans/2;
    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:36:25: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<deads>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |         for(int i = 0; i<vc.size(); ++i){
      |                        ~^~~~~~~~~~
jobs.cpp:54:25: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<deads>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |         for(int i = 0; i<copys.size(); ++i){
      |                        ~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 28 ms 7236 KB Output isn't correct
2 Incorrect 28 ms 7236 KB Output isn't correct
3 Incorrect 29 ms 7204 KB Output isn't correct
4 Incorrect 27 ms 7236 KB Output isn't correct
5 Incorrect 27 ms 7296 KB Output isn't correct
6 Incorrect 27 ms 7236 KB Output isn't correct
7 Incorrect 27 ms 7236 KB Output isn't correct
8 Incorrect 28 ms 7196 KB Output isn't correct
9 Incorrect 42 ms 7296 KB Output isn't correct
10 Incorrect 40 ms 7236 KB Output isn't correct
11 Incorrect 35 ms 7220 KB Output isn't correct
12 Incorrect 86 ms 14156 KB Output isn't correct
13 Incorrect 145 ms 25732 KB Output isn't correct
14 Incorrect 204 ms 28144 KB Output isn't correct
15 Incorrect 246 ms 30484 KB Output isn't correct
16 Runtime error 317 ms 51268 KB Memory limit exceeded
17 Runtime error 353 ms 53592 KB Memory limit exceeded
18 Runtime error 396 ms 55968 KB Memory limit exceeded
19 Runtime error 460 ms 58368 KB Memory limit exceeded
20 Runtime error 354 ms 53624 KB Memory limit exceeded