Submission #361279

#TimeUsernameProblemLanguageResultExecution timeMemory
361279parsabahramiJob Scheduling (CEOI12_jobs)C++17
70 / 100
349 ms44780 KiB
// Call my Name and Save me from The Dark #include <bits/stdc++.h> using namespace std; typedef long long int ll; typedef pair<int, int> pii; #define SZ(x) (int) x.size() #define F first #define S second const int N = 1e6 + 10; int n, D, m; pii A[N]; vector<int> vec[N]; int check(int x) { for (int i = 1, ptr = 0, cnt = 0; i <= n && ptr < m; i++) { if (i - A[ptr + 1].F > D) return 0; cnt = 0; while (ptr < m && A[ptr + 1].F <= i && cnt < x) ptr++, cnt++; } return 1; } void make(int x) { for (int i = 1, ptr = 0, cnt = 0; i <= n && ptr < m; i++) { assert(i - A[ptr + 1].F <= D); cnt = 0; while (ptr < m && A[ptr + 1].F <= i && cnt < x) { vec[i].push_back(A[ptr + 1].S); ptr++, cnt++; } } } int main() { scanf("%d%d%d", &n, &D, &m); for (int i = 1; i <= m; i++) scanf("%d", &A[i].F), A[i].S = i; sort(A + 1, A + m + 1); int l = 0, r = m + 1; while (r - l > 1) { int mid = (l + r) >> 1; if (check(mid)) r = mid; else l = mid; } printf("%d\n", r); make(r); for (int i = 1; i <= n; i++) { for (int j : vec[i]) { printf("%d ", j); } printf("0\n"); } return 0; }

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:37:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   37 |     scanf("%d%d%d", &n, &D, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~
jobs.cpp:38:39: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   38 |     for (int i = 1; i <= m; i++) scanf("%d", &A[i].F), A[i].S = i;
      |                                  ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...