Submission #743308

# Submission time Handle Problem Language Result Execution time Memory
743308 2023-05-17T09:44:20 Z vjudge1 Job Scheduling (CEOI12_jobs) C++17
0 / 100
555 ms 58780 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)>>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 = r-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: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 57 ms 7460 KB Output isn't correct
2 Incorrect 44 ms 7588 KB Output isn't correct
3 Incorrect 31 ms 7488 KB Output isn't correct
4 Incorrect 29 ms 7568 KB Output isn't correct
5 Incorrect 47 ms 7492 KB Output isn't correct
6 Incorrect 32 ms 7492 KB Output isn't correct
7 Incorrect 31 ms 7600 KB Output isn't correct
8 Incorrect 29 ms 7596 KB Output isn't correct
9 Incorrect 42 ms 7528 KB Output isn't correct
10 Incorrect 47 ms 7536 KB Output isn't correct
11 Incorrect 39 ms 7668 KB Output isn't correct
12 Incorrect 106 ms 14544 KB Output isn't correct
13 Incorrect 198 ms 26208 KB Output isn't correct
14 Incorrect 235 ms 28444 KB Output isn't correct
15 Incorrect 322 ms 30956 KB Output isn't correct
16 Runtime error 332 ms 51656 KB Memory limit exceeded
17 Runtime error 443 ms 54040 KB Memory limit exceeded
18 Runtime error 555 ms 56308 KB Memory limit exceeded
19 Runtime error 472 ms 58780 KB Memory limit exceeded
20 Runtime error 405 ms 54052 KB Memory limit exceeded