Submission #260327

#TimeUsernameProblemLanguageResultExecution timeMemory
260327georgerapeanuJob Scheduling (CEOI12_jobs)C++11
100 / 100
371 ms17360 KiB
#include <cstdio>
#include <algorithm>
#include <vector>

using namespace std;

int m,n,d;
vector<pair<int,int>> request;

bool ok(int cnt,bool afis){
    if(afis){
        printf("%d\n",cnt);
    }

    int fst = 0;

    for(int i = 1;i <= n;i++){
        if(fst < (int)request.size() && i - request[fst].first > d){
            return false;
        }
        int tmp = cnt;
        while(fst < (int)request.size() && request[fst].first <= i && tmp > 0){
            if(afis){
                printf("%d ",request[fst].second);
            }
            tmp--;
            fst++;
        }
        if(afis){
            printf("0\n");
        }
    }

    return true;

}

int main(){
    
    scanf("%d %d %d",&n,&d,&m);


    for(int i = 1;i <= m;i++){
        int day;
        scanf("%d",&day);
        request.push_back({day,i});
    }

    sort(request.begin(),request.end());

    int st = 0,dr = m + 1;

    while(dr - st > 1){
        int mid = (st + dr) / 2;

        if(ok(mid,false)){
            dr = mid;
        }
        else{
            st = mid;
        }
    }

    ok(dr,true);
    
    return 0;
}

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:40:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d %d",&n,&d,&m);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~
jobs.cpp:45:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&day);
         ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...