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...