Submission #784903

#TimeUsernameProblemLanguageResultExecution timeMemory
784903raphaelpJob Scheduling (CEOI12_jobs)C++14
0 / 100
156 ms10848 KiB
#include <bits/stdc++.h> using namespace std; bool pos(int nb, vector<int> &Jcount, int D) { int j = 0, b = 0; for (int i = 0; i < Jcount.size(); i++) { if (i - j > D) return false; int a = nb; while (a > 0 && j <= i) { if (a >= Jcount[j] - b) { a -= Jcount[j] - b; j++; b = 0; } else { b += a; a = 0; } } } return true; } int dico(int left, int right, vector<int> &Jcount, int D) { int mil = (left + right) / 2; if (mil == left) if (pos(mil, Jcount, D)) return mil; else return mil + 1; if (pos(mil, Jcount, D)) { return dico(left, mil, Jcount, D); } else return dico(mil, right, Jcount, D); } int main() { int N, D, M; cin >> N >> D >> M; vector<vector<int>> jobs(N); vector<int> Jcount(N); for (int i = 0; i < M; i++) { int temp; cin >> temp; Jcount[temp - 1]++; jobs[temp - 1].push_back(i); } int nbMach = dico(1, M + 1, Jcount, D); cout << nbMach << endl; }

Compilation message (stderr)

jobs.cpp: In function 'bool pos(int, std::vector<int>&, int)':
jobs.cpp:7:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    7 |     for (int i = 0; i < Jcount.size(); i++)
      |                     ~~^~~~~~~~~~~~~~~
jobs.cpp: In function 'int dico(int, int, std::vector<int>&, int)':
jobs.cpp:33:8: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   33 |     if (mil == left)
      |        ^
#Verdict Execution timeMemoryGrader output
Fetching results...