Submission #742941

#TimeUsernameProblemLanguageResultExecution timeMemory
742941vjudge1Job Scheduling (CEOI12_jobs)C++17
0 / 100
608 ms29532 KiB
#include<bits/stdc++.h>

using namespace std;

vector<tuple<int, int, int>> vc,copys;
int n,d,m,a,l = 1,r = 1e9,ans = 1e9+7;

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){
        int mid = (l+r)>>1;
        bool ck = 0;
        int cnt = 0;
        for(int i = 0; i<copys.size(); ++i){
            bool s = 0;
            auto &[day,work,dead] = vc[i];
            if(day==dead){
                ck = 1;
                break;
            }
            ++cnt;
            if(cnt==mid){
                cnt = 0;
                for(int j = i+1; j<copys.size(); ++j){
                    auto &[day,work,dead] = vc[j];
                    day++;
                }
            }
            if(s){
                ck = 1;
                break;
            }
        }
        if(ck){
            ans = min(ans,mid);
            l = mid+1;
        }
        else{
            r = mid;
        }
    }
    cout<<l+1<<"\n";
    int cnt = 0,c = 0;
    for(auto [day,work,dead]:copys){
        if(cnt==l+1){
            cout<<0;
            cnt = 0;
            ++c;
            cout<<"\n";
        }
        cout<<work<<" ";
        ++cnt;
    }
    ++c;
    cout<<"\n";
    for(int i = 0; i<n-c; ++i){
        cout<<0<<"\n";
    }
}

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:24:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::tuple<int, int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |         for(int i = 0; i<copys.size(); ++i){
      |                        ~^~~~~~~~~~~~~
jobs.cpp:34:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::tuple<int, int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |                 for(int j = i+1; j<copys.size(); ++j){
      |                                  ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...