제출 #256309

#제출 시각아이디문제언어결과실행 시간메모리
256309MolukhyyehJob Scheduling (CEOI12_jobs)C++14
10 / 100
341 ms23004 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define all(x) x.begin(),x.end() int const N = 200001, M = 1e6+1; int n, d, m; pair<int,int> v[M]; vector<int> pr[N]; bool ok(int md){ if(m / md > n)return false; int av = md, day = 0, cur = 0; for(int i = 0; i<m; ++i){ cur = day; --av; if(!av)av = md, ++day; if(cur >= v[i].first+d)return false; } return true; } int main(){ scanf("%d%d%d", &n, &d, &m); for(int i = 0; i<m; ++i){ scanf("%d", &v[i].first); v[i].second = i+1; } sort(v, v+m); int l = m/n+(m%n? 1: 0), r = M, md, an = m; while(l <= r){ md = l + r >> 1; if(ok(md)){ if(m%md == 0)r = md-1, an = md; else r = md-1; } else l = md+1; } printf("%d\n", an); int day = 1, av = an, ls = 0; for(int i = 0; i<m; ++i){ pr[ls].push_back(v[i].second); --av; if(!av)av = md, ++day, ++ls; } for(int i = 0; i<n; ++i){ for(auto j: pr[i])printf("%d ", j); puts("0"); } }

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

jobs.cpp: In function 'int main()':
jobs.cpp:32:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
       md = l + r >> 1;
            ~~^~~
jobs.cpp:24: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:26:11: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
      scanf("%d", &v[i].first);
      ~~~~~^~~~~~~~~~~~~~~~~~~
jobs.cpp:43:8: warning: 'av' may be used uninitialized in this function [-Wmaybe-uninitialized]
        --av; 
        ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...