Submission #414196

#TimeUsernameProblemLanguageResultExecution timeMemory
414196prvocisloPainting Walls (APIO20_paint)C++17
63 / 100
993 ms524292 KiB
#include <vector> using namespace std; int minimumInstructions(int n, int m, int k, vector<int> c, vector<int> a, vector<vector<int>> b) { vector<vector<int> > f(k); // ktorym kontraktorom sa paci tato farba for (int i = 0; i < m; i++) for (int j : b[i]) f[j].push_back(i), f[j].push_back(i + m); const int off = n + 5, maxi = 2 * m + n + 10; vector<vector<int> > s(maxi); // ktore indexy maju toto cislo for (int i = 0; i < n;i++) { for (int j : f[c[i]]) s[off + j - i].push_back(i); } vector<int> st(n, 0); // mozeme na tomto indexe zacat for (int i = 0; i < maxi; i++) { if (s[i].empty()) continue; int miss = s[i][0]-1; // posledne ktore nam chyba for (int j = 0; j < s[i].size(); j++) { if (j && s[i][j - 1] != s[i][j] - 1) miss = s[i][j] - 1; if (miss + m <= s[i][j]) st[s[i][j] - (m - 1)] = 1; } } int last = -1; // posledne zafarbene int best = -1e9; // najlepsie ktore mozeme zobrat int ans = 0; for (int i = 0; i < n; i++) { if (st[i]) best = i; if (last < i) { if (best + m - 1 < i) return -1; ans ++; last = best + m - 1; } } return ans; }

Compilation message (stderr)

paint.cpp: In function 'int minimumInstructions(int, int, int, std::vector<int>, std::vector<int>, std::vector<std::vector<int> >)':
paint.cpp:18:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |     for (int j = 0; j < s[i].size(); j++)
      |                     ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...