Submission #1198682

#TimeUsernameProblemLanguageResultExecution timeMemory
1198682LucaLucaMCarnival Tickets (IOI20_tickets)C++20
16 / 100
312 ms51380 KiB
#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 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...