Submission #1094078

#TimeUsernameProblemLanguageResultExecution timeMemory
1094078SunbaeJob Scheduling (CEOI12_jobs)C++17
0 / 100
178 ms19028 KiB
#include <bits/stdc++.h> using namespace std; vector<int> v[100000]; int a[1000000]; signed main() { int n, d, m; scanf("%d %d %d", &n, &d, &m); // Input reading for(int i = 0; i < m; ++i) { scanf("%d", a+i); v[--a[i]].push_back(i); // Decrement a[i] before using it as an index } // Sorting the array sort(a, a + m); // Binary search int low = 1, high = m, ans; while(low <= high) { int mid = low + ((high - low) >> 1), ch = 1; for(int i = 0; i < m; ++i) { if(i / mid > a[i] + d) { // Check this condition for correctness ch = 0; break; } } if(ch) high = mid - 1, ans = mid; else low = mid + 1; } // Output logic int cnt = 0; for(int i = 0, j; i < m; i = j, ++cnt) { for(j = i; j < m && (i / ans) == (j / ans); ++j) { printf("%d ", v[a[j]].back() + 1); // Print and pop v[a[j]].pop_back(); } puts("0"); // Add newline after each block } // Final trailing zeros for(int j = 0; j < n - cnt - 1; ++j) puts("0"); // Newline after each "0" printf("0\n"); // Final "0" with a newline }

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:9:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |     scanf("%d %d %d", &n, &d, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
jobs.cpp:13:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |         scanf("%d", a+i);
      |         ~~~~~^~~~~~~~~~~
jobs.cpp:37:45: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   37 |         for(j = i; j < m && (i / ans) == (j / ans); ++j) {
      |                                          ~~~^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...