#include "tickets.h"
#include <vector>
#include <iostream>
#include <algorithm>
using ll = long long;
ll find_maximum(int k, std::vector<std::vector<int>> a) {
int n = (int) a.size();
int m = (int) a[0].size();
if (k == 1) {
// pt fiecare ori aleg prima valoare, ori aleg ultima valoare
// initial sa zicem ca mereu aleg prima valoare si o pun cu -
// intr un pas pot sa schimb din prima in ultima si vad profitu pe care il primesc
// iau cele mai mari n / 2 profit uri
std::vector<int> rows(n);
for (int i = 0; i < n; i++) {
rows[i] = i;
}
std::sort(rows.begin(), rows.end(), [&](int x, int y) {
return a[x].back() + a[x][0] > a[y].back() + a[y][0];
});
std::vector<std::vector<int>> answer(n, std::vector<int>(m, -1));
ll sum = 0;
for (int i = 0; i < n; i++) {
answer[i][0] = 0;
sum += -a[i][0];
}
for (int i = 0; i < n / 2; i++) {
answer[rows[i]][m - 1] = 0;
answer[rows[i]][0] = -1;
sum += a[rows[i]].back() + a[rows[i]][0];
}
allocate_tickets(answer);
return sum;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |