제출 #520321

#제출 시각아이디문제언어결과실행 시간메모리
520321krit3379Job Scheduling (CEOI12_jobs)C++14
100 / 100
135 ms7496 KiB
#include<bits/stdc++.h>
using namespace std;
#define N 1000005

struct A{
    int val,i;
    bool operator<(const A& o)const{
        return val<o.val;
    }
};

A a[N];

int main(){
    int n,m,d,i,j,l,r,mid,k,ans;
    scanf("%d %d %d",&n,&d,&m);
    for(i=1;i<=m;i++){
        scanf("%d",&a[i].val);
        a[i].i=i;
    }
    sort(a+1,a+m+1);
    l=1,r=m;
    while(l<=r){
        mid=(l+r)/2;

        for(i=1,j=1;i<=n&&j<=m;i++){
            if(i>a[j].val+d)break;
            k=mid;
            while(j<=m&&a[j].val<=i&&k--)j++;
        }

        if(j>m)ans=mid,r=mid-1;
        else l=mid+1;

    }
    printf("%d\n",ans);
    for(i=1;i<=n;i++)printf("0\n");
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

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