110172024-06-04 19:57:01zsomborKutyák és macskákcpp17Részben helyes 91.37/1001.289s760 KiB
#include "KutyakMacskak.h"
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int c, d;

bool r(int a, int b) {
    return ask(d, a, b) == a;
}

vector <int> merge_sort(vector <int> v) {
    if (v.size() == 1) return v;
    vector <int> a;
    vector <int> b;
    for (int i = 0; i < v.size() / 2; i++) a.push_back(v[i]);
    for (int i = v.size() / 2; i < v.size(); i++) b.push_back(v[i]);
    v.clear();
    a = merge_sort(a);
    b = merge_sort(b);
    int i = 0, j = 0;
    while (i < a.size() && j < b.size()) {
        if (r(a[i], b[j])) { v.push_back(a[i]); i++; }
        else { v.push_back(b[j]); j++; }
    }
    while (i < a.size()) { v.push_back(a[i]); i++; }
    while (j < b.size()) { v.push_back(b[j]); j++; }
    return v;
}

vector <int> find_order(int n, int m) {
    c = 1;
    for (int i = 2; i <= m; i++) if (ask(1, c, i) == c) c = i;
    d = 1;
    for (int i = 1; i <= m; i++) {
        if (i == c || ask(d, c, i) == c) continue;
        d++;
        i--;
    }
    vector <int> ans;
    for (int i = 1; i <= m; i++) ans.push_back(i);
    ans = merge_sort(ans);
    return ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms412 KiB
2Elfogadva1.078s512 KiB
subtask26/6
3Elfogadva1.105s484 KiB
4Elfogadva1.105s380 KiB
5Elfogadva1.113s420 KiB
6Elfogadva1.115s544 KiB
7Elfogadva1.077s356 KiB
subtask37/7
8Elfogadva3ms504 KiB
9Elfogadva3ms356 KiB
10Elfogadva3ms384 KiB
11Elfogadva3ms416 KiB
12Elfogadva4ms384 KiB
13Elfogadva37ms636 KiB
14Elfogadva46ms392 KiB
subtask410/10
15Elfogadva10ms356 KiB
16Elfogadva9ms356 KiB
17Elfogadva13ms280 KiB
18Elfogadva12ms352 KiB
19Elfogadva10ms504 KiB
20Elfogadva9ms360 KiB
21Elfogadva13ms396 KiB
22Elfogadva12ms408 KiB
23Elfogadva12ms228 KiB
24Elfogadva12ms528 KiB
25Elfogadva10ms356 KiB
26Elfogadva13ms360 KiB
27Elfogadva13ms420 KiB
28Elfogadva10ms384 KiB
29Elfogadva13ms376 KiB
subtask512/12
30Elfogadva10ms356 KiB
31Elfogadva9ms356 KiB
32Elfogadva13ms280 KiB
33Elfogadva12ms352 KiB
34Elfogadva10ms504 KiB
35Elfogadva9ms360 KiB
36Elfogadva13ms396 KiB
37Elfogadva12ms408 KiB
38Elfogadva12ms228 KiB
39Elfogadva12ms528 KiB
40Elfogadva10ms356 KiB
41Elfogadva13ms360 KiB
42Elfogadva13ms420 KiB
43Elfogadva10ms384 KiB
44Elfogadva13ms376 KiB
45Elfogadva57ms420 KiB
46Elfogadva59ms416 KiB
47Elfogadva54ms376 KiB
48Elfogadva63ms412 KiB
49Elfogadva64ms356 KiB
50Elfogadva59ms504 KiB
51Elfogadva61ms420 KiB
52Elfogadva57ms420 KiB
53Elfogadva61ms488 KiB
54Elfogadva57ms356 KiB
55Elfogadva59ms356 KiB
56Elfogadva64ms388 KiB
57Elfogadva52ms488 KiB
58Elfogadva59ms356 KiB
59Elfogadva54ms484 KiB
subtask656.37/65
60Elfogadva3ms492 KiB
61Elfogadva1.105s396 KiB
62Elfogadva1.105s484 KiB
63Elfogadva1.105s380 KiB
64Elfogadva1.113s420 KiB
65Elfogadva1.115s544 KiB
66Elfogadva1.077s356 KiB
67Elfogadva3ms504 KiB
68Elfogadva3ms356 KiB
69Elfogadva3ms384 KiB
70Elfogadva3ms416 KiB
71Elfogadva4ms384 KiB
72Elfogadva37ms636 KiB
73Elfogadva46ms392 KiB
74Elfogadva10ms356 KiB
75Elfogadva9ms356 KiB
76Elfogadva13ms280 KiB
77Elfogadva12ms352 KiB
78Elfogadva10ms504 KiB
79Elfogadva9ms360 KiB
80Elfogadva13ms396 KiB
81Elfogadva12ms408 KiB
82Elfogadva12ms228 KiB
83Elfogadva12ms528 KiB
84Elfogadva10ms356 KiB
85Elfogadva13ms360 KiB
86Elfogadva13ms420 KiB
87Elfogadva10ms384 KiB
88Elfogadva13ms376 KiB
89Elfogadva57ms420 KiB
90Elfogadva59ms416 KiB
91Elfogadva54ms376 KiB
92Elfogadva63ms412 KiB
93Elfogadva64ms356 KiB
94Elfogadva59ms504 KiB
95Elfogadva61ms420 KiB
96Elfogadva57ms420 KiB
97Elfogadva61ms488 KiB
98Elfogadva57ms356 KiB
99Elfogadva59ms356 KiB
100Elfogadva64ms388 KiB
101Elfogadva52ms488 KiB
102Elfogadva59ms356 KiB
103Elfogadva54ms484 KiB
104Részben helyes1.113s484 KiB
105Részben helyes1.105s420 KiB
106Részben helyes1.136s532 KiB
107Részben helyes1.207s424 KiB
108Részben helyes1.09s484 KiB
109Részben helyes1.19s420 KiB
110Részben helyes1.289s424 KiB
111Elfogadva1.113s484 KiB
112Elfogadva1.126s484 KiB
113Elfogadva1.113s632 KiB
114Részben helyes1.126s356 KiB
115Részben helyes1.128s508 KiB
116Részben helyes1.139s356 KiB
117Részben helyes1.133s676 KiB
118Részben helyes1.136s420 KiB
119Részben helyes1.134s424 KiB
120Részben helyes1.152s520 KiB
121Részben helyes1.136s428 KiB
122Részben helyes1.167s424 KiB
123Részben helyes1.156s500 KiB
124Részben helyes1.231s356 KiB
125Részben helyes1.269s612 KiB
126Részben helyes1.2s760 KiB
127Részben helyes1.156s504 KiB
128Részben helyes1.156s532 KiB
129Részben helyes1.123s424 KiB
130Részben helyes1.131s480 KiB
131Részben helyes1.131s668 KiB
132Részben helyes1.149s500 KiB