Submission #743299

# Submission time Handle Problem Language Result Execution time Memory
743299 2023-05-17T09:41:48 Z vjudge1 Job Scheduling (CEOI12_jobs) C++17
0 / 100
503 ms 58400 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) break;
        }
        if(ck){
            l = mid+1;
        }
        else{
            ans = min(ans,mid);
            r = mid;
        }
        for(int i = 0; i<copys.size(); ++i){
            vc[i] = copys[i];
        }
    }
    int k = ans/2;
    cout<<ans/2<<"\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:55:25: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<deads>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         for(int i = 0; i<copys.size(); ++i){
      |                        ~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 29 ms 7236 KB Output isn't correct
2 Incorrect 27 ms 7236 KB Output isn't correct
3 Incorrect 28 ms 7236 KB Output isn't correct
4 Incorrect 29 ms 7236 KB Output isn't correct
5 Incorrect 28 ms 7236 KB Output isn't correct
6 Incorrect 28 ms 7236 KB Output isn't correct
7 Incorrect 28 ms 7284 KB Output isn't correct
8 Incorrect 41 ms 7208 KB Output isn't correct
9 Incorrect 58 ms 7292 KB Output isn't correct
10 Incorrect 46 ms 7260 KB Output isn't correct
11 Incorrect 36 ms 7296 KB Output isn't correct
12 Incorrect 87 ms 14228 KB Output isn't correct
13 Incorrect 161 ms 25796 KB Output isn't correct
14 Incorrect 219 ms 28124 KB Output isn't correct
15 Incorrect 269 ms 30488 KB Output isn't correct
16 Runtime error 377 ms 51276 KB Memory limit exceeded
17 Runtime error 418 ms 53656 KB Memory limit exceeded
18 Runtime error 444 ms 55992 KB Memory limit exceeded
19 Runtime error 503 ms 58400 KB Memory limit exceeded
20 Runtime error 377 ms 53692 KB Memory limit exceeded