Submission #150356

#TimeUsernameProblemLanguageResultExecution timeMemory
150356Cafe Maru (#200)Wine Tasting (FXCUP4_wine)C++17
4 / 100
10 ms1140 KiB
#include "bartender.h" std::vector<int> BlendWines(int K, std::vector<int> R){ int N = R.size(); std::vector<int> r(N); for (int ni = 0; ni < N; ni++) { if (R[ni] == 30) r[ni] = 10; else if (R[ni] == 29) r[ni] = 1; else r[ni] = R[ni] % 9 + 1; } return r; }
#include "taster.h" #include <bits/stdc++.h> int Compare2(int N, int a, int b) { if (a < N && b < N) return Compare(a, b); if (b < N) return 1; if (a > b) return 1; return -1; } std::vector<int> SortWines(int K, std::vector<int> A) { std::srand(unsigned(std::time(0))); int N = A.size(); std::vector<int> r(30); std::vector<int> cc[12]; for (int ni = 0; ni < 30; ni++) { int aa; if (ni < N) aa = A[ni]; else if (ni == 29) aa = 10; else if (ni == 28) aa = 1; else if (ni % 9 == 8) aa = 1; else aa = ni % 9 + 2; cc[aa].push_back(ni); } for (int i = 1; i < 9; i++) { std::random_shuffle(cc[i].begin(), cc[i].end()); } r[cc[10][0]] = 30; int pos1, pos2, pos3, pos4; int pivot1, pivot2; int win1, lose1, win2, lose2; if (Compare2(N, cc[1][0], cc[1][1]) == -1) { win1 = cc[1][0]; lose1 = cc[1][1]; } else { win1 = cc[1][1]; lose1 = cc[1][0]; } if (Compare2(N, cc[1][2], cc[1][3]) == -1) { win2 = cc[1][2]; lose2 = cc[1][3]; } else { win2 = cc[1][3]; lose2 = cc[1][2]; } if (Compare2(N, win1, win2) == -1) { pos1 = win1; if (Compare2(N, lose1, win2) == -1) { pos2 = lose1; pos3 = win2; pos4 = lose2; } else { pos2 = win2; if (Compare2(N, lose1, lose2) == -1) { pos3 = lose1; pos4 = lose2; } else { pos3 = lose2; pos4 = lose1; } } } else { pos1 = win2; if (Compare2(N, lose2, win1) == -1) { pos2 = lose2; pos3 = win1; pos4 = lose1; } else { pos2 = win1; if (Compare2(N, lose2, lose1) == -1) { pos3 = lose2; pos4 = lose1; } else { pos3 = lose1; pos4 = lose2; } } } r[pos1] = 9; r[pos2] = 18; r[pos3] = 27; r[pos4] = 29; pivot1 = pos1; pivot2 = pos2; if (Compare2(N, cc[2][0], cc[2][1]) == -1) { win1 = cc[2][0]; lose1 = cc[2][1]; } else { win1 = cc[2][1]; lose1 = cc[2][0]; } if (Compare2(N, cc[2][2], cc[2][3]) == -1) { win2 = cc[2][2]; lose2 = cc[2][3]; } else { win2 = cc[2][3]; lose2 = cc[2][2]; } if (Compare2(N, win1, win2) == -1) { pos1 = win1; if (Compare2(N, lose1, win2) == -1) { pos2 = lose1; pos3 = win2; pos4 = lose2; } else { pos2 = win2; if (Compare2(N, lose1, lose2) == -1) { pos3 = lose1; pos4 = lose2; } else { pos3 = lose2; pos4 = lose1; } } } else { pos1 = win2; if (Compare2(N, lose2, win1) == -1) { pos2 = lose2; pos3 = win1; pos4 = lose1; } else { pos2 = win1; if (Compare2(N, lose2, lose1) == -1) { pos3 = lose2; pos4 = lose1; } else { pos3 = lose1; pos4 = lose2; } } } r[pos1] = 1; r[pos2] = 10; r[pos3] = 19; r[pos4] = 28; for (int i = 3; i <= 9; i++) { if (Compare2(N, cc[i][0], pivot1) == -1) { r[cc[i][0]] = i - 1; if (Compare2(N, cc[i][1], pivot2) == -1) { r[cc[i][1]] = i + 8; r[cc[i][2]] = i + 17; } else { r[cc[i][1]] = i + 17; r[cc[i][2]] = i + 8; } } else { if (Compare2(N, cc[i][1], pivot1) == -1) { r[cc[i][1]] = i - 1; if (Compare2(N, cc[i][2], pivot2) == -1) { r[cc[i][0]] = i + 17; r[cc[i][2]] = i + 8; } else { r[cc[i][0]] = i + 8; r[cc[i][2]] = i + 17; } } else { r[cc[i][2]] = i - 1; if (Compare2(N, cc[i][0], pivot2) == -1) { r[cc[i][0]] = i + 8; r[cc[i][1]] = i + 17; } else { r[cc[i][0]] = i + 17; r[cc[i][1]] = i + 8; } } } } std::vector<int> rr(N); for (int ni = 0; ni < N; ni++) { rr[ni] = r[ni]; } return rr; }
#Verdict Execution timeMemoryGrader output
Fetching results...