Submission #743321

# Submission time Handle Problem Language Result Execution time Memory
743321 2023-05-17T09:47:25 Z vjudge1 Job Scheduling (CEOI12_jobs) C++17
0 / 100
492 ms 58356 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(vc.size()%k) {
        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 36 ms 7236 KB Output isn't correct
2 Incorrect 28 ms 7236 KB Output isn't correct
3 Incorrect 27 ms 7236 KB Output isn't correct
4 Incorrect 27 ms 7296 KB Output isn't correct
5 Incorrect 27 ms 7296 KB Output isn't correct
6 Incorrect 26 ms 7296 KB Output isn't correct
7 Incorrect 30 ms 7196 KB Output isn't correct
8 Incorrect 29 ms 7236 KB Output isn't correct
9 Incorrect 43 ms 7160 KB Output isn't correct
10 Incorrect 44 ms 7492 KB Output isn't correct
11 Incorrect 41 ms 7288 KB Output isn't correct
12 Incorrect 81 ms 14240 KB Output isn't correct
13 Incorrect 163 ms 25756 KB Output isn't correct
14 Incorrect 209 ms 28140 KB Output isn't correct
15 Incorrect 268 ms 30540 KB Output isn't correct
16 Runtime error 310 ms 51240 KB Memory limit exceeded
17 Runtime error 389 ms 53636 KB Memory limit exceeded
18 Runtime error 410 ms 55968 KB Memory limit exceeded
19 Runtime error 492 ms 58356 KB Memory limit exceeded
20 Runtime error 390 ms 53628 KB Memory limit exceeded