Submission #1054481

#TimeUsernameProblemLanguageResultExecution timeMemory
1054481kiryl_krutskoSafety (NOI18_safety)C++14
4 / 100
2100 ms262144 KiB
#include <iostream> #include <vector> #include <climits> using namespace std; void out(vector<vector<int> >* results) { cout << endl; for (int i = 0; i < results->size(); i++) { for (int j = 0; j < results->at(i).size(); j++) { cout << results->at(i)[j] << " "; } cout << endl; } } int main() { int n, H; int maxh = 0; cin >> n >> H; vector<int> input; int in; for (int i = 0; i < n; i++) { cin >> in; if (in > maxh) maxh = in; input.push_back(in); } vector<vector<int> > results(2, vector<int> (maxh + 1)); int cur = input[0]; for (int i = 0; i < maxh + 1; i++) { results[0][i] = abs(i - cur); } for (int i = 1; i < n; i++) { cur = input[i]; for (int j = 0; j < maxh + 1; j++) { //out(&results); int best_last = INT_MAX; for (int h = H; h >= -H; h--) { if (j + h >= 0 && j + h < maxh + 1){ if(results[0][j + h] < best_last) best_last = results[0][j + h]; } } results[1][j] = abs(j - cur) + best_last; } results.erase(results.begin()); results.push_back(vector<int>(maxh + 1)); } /* int best_result = INT_MAX; for (int j = 0; j < maxh + 1; j++) { int best_last = INT_MAX; for (int h = H; h >= -H; h--) { if (j + h >= 0 && j + h < maxh + 2) { if (results[0][j + h] < best_last) { best_last = results[0][j + h]; } } } if (abs(j - cur) + best_last < best_result) best_result = abs(j - cur) + best_last; }*/ int best_result = INT_MAX; for (int i = 0; i < maxh + 1; i++) { if (results[0][i] < best_result) best_result = results[0][i]; } cout << best_result << endl; }

Compilation message (stderr)

safety.cpp: In function 'void out(std::vector<std::vector<int> >*)':
safety.cpp:10:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for (int i = 0; i < results->size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~
safety.cpp:11:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |         for (int j = 0; j < results->at(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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...