Submission #928436

# Submission time Handle Problem Language Result Execution time Memory
928436 2024-02-16T11:35:55 Z OAleksa Boxes with souvenirs (IOI15_boxes) C++14
20 / 100
1 ms 448 KB
#include "boxes.h"
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;

long long delivery(int n, int k, int l, int p[]) {
   vector<int> left, right;
   for (int i = 0;i < n;i++) {
      if (p[i] <= l / 2)
         left.push_back(p[i]);
      else
         right.push_back(p[i]);
   }
   auto Solve = [&](vector<int> fi, vector<int> se) {
      long long r = 0, o = 0;
      for (int i = 0;i < (int)fi.size();i++) {
         if (o == 0) {
            if (i == 0)
               r += fi[i];
            else
               r += fi[i - 1] + fi[i];
            o = k - 1;
         }
         else {
            o -= 1;
            r += fi[i] - fi[i - 1];
         }
         if (i == (int)fi.size() - 1)
            r += fi[i];
      }
      o = 0;
      for (int i = (int)se.size() - 1;i >= 0;i--) {
         if (o == 0) {
            if (i == (int)se.size() - 1)
               r += (l - se[i]);
            else
               r += (l - se[i + 1]) + (l - se[i]);
            o = k - 1;
         }
         else {
            o -= 1;
            r += se[i + 1] - se[i];
         }
         if (i == 0)
            r += (l - se[i]);
      }
      long long r1 = 0;
      o = 0;
      int j = -1;
      for (int i = 0;i < (int)fi.size();i++) {
         if (o == 0) {
            if (i == 0)
               r1 += fi[i];
            else
               r1 += fi[i - 1] + fi[i];
            o = k - 1;
         }
         else {
            o -= 1;
            r1 += fi[i] - fi[i - 1];
         }
         if (i == (int)fi.size() - 1) {
            if (se.size() > 0 && o > 0) {
               for (j = 0;j < (int)se.size();j++) {
                  o -= 1;
                  if (j == 0)
                     r1 += se[j] - fi[i];
                  else
                     r1 += se[j] - se[j - 1];
                  if (o == 0 || j == (int)se.size() - 1) {
                     r1 += (l - se[j]);
                     break;
                  }
               }
            }
            else
               r1 += fi[i];
         }
      }
      o = 0;
      for (int i = (int)se.size() - 1;i > j;i--) {
         if (o == 0) {
            if (i == (int)se.size() - 1)
               r1 += (l - se[i]);
            else
               r1 += (l - se[i + 1]) + (l - se[i]);
            o = k - 1;
         }
         else {
            o -= 1;
            r1 += se[i + 1] - se[i];
         }
         if (i == j + 1)
            r1 += (l - se[i]);
      }
      return min(r, r1);
   };
   return Solve(left, right);
}
/*
3 2 8
1 2 5
*/
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 448 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 0 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 448 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Incorrect 0 ms 348 KB Output isn't correct
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 448 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Incorrect 0 ms 348 KB Output isn't correct
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 448 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Incorrect 0 ms 348 KB Output isn't correct
21 Halted 0 ms 0 KB -