#include <bits/stdc++.h>
#define all(v) ((v).begin(),(v).end())
#define ll long long
#define F first
#define S second
const ll mod = 1e9 + 7;
const ll mxN = 1e5 + 2;
using namespace std;
// void __attribute__((noreturn)) __attribute__((format(printf, 1, 2))) result(const char *msg, ...) {
// va_list args;
// va_start(args, msg);
// vfprintf(stdout, msg, args);
// fprintf(stdout, "\n");
// va_end(args);
// exit(0);
// }
//
// namespace {
// int N;
// int Q = 0;
// const int MAX_Q = 4000;
// const int MAX_N = 4000;
// vector<int> solution;
// } // namespace
//
//
// void __attribute__((noreturn)) answer(vector<int> R) {
// printf("answer({");
// for(int i = 0; i < int(R.size()); ++i) {
// if(i == 0)
// printf("%d", R[i]);
// else
// printf(", %d", R[i]);
// }
// printf("})\n");
// fflush(stdout);
//
//
// if(R == solution)
// result("Correct: %d published ranking(s).", Q);
// else
// result("Wrong answer!");
// }
int publish(vector<int> R);
// printf("publish({");
// for(int i = 0; i < int(R.size()); ++i) {
// if(i == 0)
// printf("%d", R[i]);
// else
// printf(", %d", R[i]);
// }
// printf("})\n");
// fflush(stdout);
//
// if (++Q > MAX_Q)
// result("Too many published rankings!");
//
// if (int(R.size()) != N)
// result("Invalid published ranking!");
//
// set<int> chosen;
// for(auto &x : R) {
// if(x < 1 || x > N || chosen.count(x))
// result("Invalid published ranking!");
// chosen.insert(x);
// }
// vector<int> positions(N+1);
// for(int i = 0; i < N; ++i)
// positions[R[i]] = i;
//
// int complaints = 0;
// for(int i = 0; i < N; ++i) {
// for(int j = i+1; j < N; ++j) {
// if(positions[solution[i]] > positions[solution[j]])
// ++complaints;
// }
// }
//
// return complaints;
// }
void answer(std::vector<int>);
bool compare(int a,int b,int N){
vector<int> ch1,ch2;
ch2.push_back(b);
ch2.push_back(a);
ch1.push_back(a);
ch1.push_back(b);
for(int i = 1;i <= N;i++){
if(i != a && i != b){
ch1.push_back(i);
ch2.push_back(i);
}
}
return (publish(ch1) < publish(ch2));
}
vector<int>og;
vector<int>mergeSort(int l,int r,int N){
if(l == r) return og;
int md = (l + r) / 2;
vector<int> a = mergeSort(l,md,N);
vector<int> b = mergeSort(md + 1,r,N);
vector<int> c;
for(int i = 0;i < l;i++){
c.push_back(i + 1);
}
int j = md + 1;
int i = l;
while(i <= md || j <= r){
if(j > r){
c.push_back(a[i]);
i++;
}
else if(i > md){
c.push_back(b[j]);
j++;
}
else if(compare(a[i],b[j],N)){
c.push_back(a[i]);
i++;
}else{
c.push_back(b[j]);
j++;
}
}
for(int i = r;i < N - 1;i++){
c.push_back(i + 1);
}
// cout<<l<<' '<<r<<'\n';
// for(auto x : c) cout<<x<<' ';
// cout<<'\n';
return c;
}
void solve(int N) {
for(int i = 1;i <= N;i++) og.push_back(i);
answer(mergeSort(0,N - 1,N));
}
//
// int main() {
// if (scanf("%d", &N) != 1 || N < 2 || N > MAX_N)
// result("Invalid input!");
//
// solution.resize(N);
// set<int> chosen;
// for(auto &x : solution) {
// if(scanf("%d", &x) != 1 || x < 1 || x > N || chosen.count(x))
// result("Invalid input!");
// chosen.insert(x);
// }
//
// solve(N);
//
// result("No answer!");
// }
Compilation message
interface.cpp: In function 'int publish(std::vector<int>)':
interface.cpp:20:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
20 | if(v.size() != N) {
| ~~~~~~~~~^~~~
interface.cpp: In function 'void answer(std::vector<int>)':
interface.cpp:36:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
36 | if(v.size() != N) {
| ~~~~~~~~~^~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
6 |
Correct |
0 ms |
344 KB |
Output is correct |
7 |
Correct |
0 ms |
596 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
6 |
Correct |
0 ms |
344 KB |
Output is correct |
7 |
Correct |
0 ms |
596 KB |
Output is correct |
8 |
Correct |
0 ms |
344 KB |
Output is correct |
9 |
Correct |
2 ms |
344 KB |
Output is correct |
10 |
Correct |
2 ms |
344 KB |
Output is correct |
11 |
Correct |
3 ms |
344 KB |
Output is correct |
12 |
Correct |
2 ms |
344 KB |
Output is correct |
13 |
Correct |
1 ms |
344 KB |
Output is correct |
14 |
Correct |
0 ms |
544 KB |
Output is correct |
15 |
Correct |
1 ms |
344 KB |
Output is correct |
16 |
Correct |
0 ms |
344 KB |
Output is correct |
17 |
Correct |
1 ms |
344 KB |
Output is correct |
18 |
Correct |
0 ms |
344 KB |
Output is correct |
19 |
Correct |
2 ms |
596 KB |
Output is correct |
20 |
Correct |
2 ms |
344 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
6 |
Correct |
0 ms |
344 KB |
Output is correct |
7 |
Correct |
0 ms |
596 KB |
Output is correct |
8 |
Correct |
0 ms |
344 KB |
Output is correct |
9 |
Correct |
2 ms |
344 KB |
Output is correct |
10 |
Correct |
2 ms |
344 KB |
Output is correct |
11 |
Correct |
3 ms |
344 KB |
Output is correct |
12 |
Correct |
2 ms |
344 KB |
Output is correct |
13 |
Correct |
1 ms |
344 KB |
Output is correct |
14 |
Correct |
0 ms |
544 KB |
Output is correct |
15 |
Correct |
1 ms |
344 KB |
Output is correct |
16 |
Correct |
0 ms |
344 KB |
Output is correct |
17 |
Correct |
1 ms |
344 KB |
Output is correct |
18 |
Correct |
0 ms |
344 KB |
Output is correct |
19 |
Correct |
2 ms |
596 KB |
Output is correct |
20 |
Correct |
2 ms |
344 KB |
Output is correct |
21 |
Correct |
0 ms |
344 KB |
Output is correct |
22 |
Correct |
2 ms |
344 KB |
Output is correct |
23 |
Correct |
2 ms |
596 KB |
Output is correct |
24 |
Correct |
2 ms |
344 KB |
Output is correct |
25 |
Correct |
3 ms |
344 KB |
Output is correct |
26 |
Correct |
44 ms |
704 KB |
Output is correct |
27 |
Correct |
40 ms |
704 KB |
Output is correct |
28 |
Correct |
68 ms |
440 KB |
Output is correct |
29 |
Correct |
68 ms |
444 KB |
Output is correct |
30 |
Correct |
76 ms |
696 KB |
Output is correct |
31 |
Correct |
83 ms |
444 KB |
Output is correct |
32 |
Correct |
0 ms |
344 KB |
Output is correct |
33 |
Correct |
0 ms |
344 KB |
Output is correct |
34 |
Correct |
1 ms |
344 KB |
Output is correct |
35 |
Correct |
1 ms |
596 KB |
Output is correct |
36 |
Correct |
1 ms |
344 KB |
Output is correct |
37 |
Correct |
0 ms |
344 KB |
Output is correct |
38 |
Correct |
3 ms |
344 KB |
Output is correct |
39 |
Correct |
2 ms |
344 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
6 |
Correct |
0 ms |
344 KB |
Output is correct |
7 |
Correct |
0 ms |
596 KB |
Output is correct |
8 |
Correct |
0 ms |
344 KB |
Output is correct |
9 |
Correct |
2 ms |
344 KB |
Output is correct |
10 |
Correct |
2 ms |
344 KB |
Output is correct |
11 |
Correct |
3 ms |
344 KB |
Output is correct |
12 |
Correct |
2 ms |
344 KB |
Output is correct |
13 |
Correct |
1 ms |
344 KB |
Output is correct |
14 |
Correct |
0 ms |
544 KB |
Output is correct |
15 |
Correct |
1 ms |
344 KB |
Output is correct |
16 |
Correct |
0 ms |
344 KB |
Output is correct |
17 |
Correct |
1 ms |
344 KB |
Output is correct |
18 |
Correct |
0 ms |
344 KB |
Output is correct |
19 |
Correct |
2 ms |
596 KB |
Output is correct |
20 |
Correct |
2 ms |
344 KB |
Output is correct |
21 |
Correct |
0 ms |
344 KB |
Output is correct |
22 |
Correct |
2 ms |
344 KB |
Output is correct |
23 |
Correct |
2 ms |
596 KB |
Output is correct |
24 |
Correct |
2 ms |
344 KB |
Output is correct |
25 |
Correct |
3 ms |
344 KB |
Output is correct |
26 |
Correct |
44 ms |
704 KB |
Output is correct |
27 |
Correct |
40 ms |
704 KB |
Output is correct |
28 |
Correct |
68 ms |
440 KB |
Output is correct |
29 |
Correct |
68 ms |
444 KB |
Output is correct |
30 |
Correct |
76 ms |
696 KB |
Output is correct |
31 |
Correct |
83 ms |
444 KB |
Output is correct |
32 |
Correct |
0 ms |
344 KB |
Output is correct |
33 |
Correct |
0 ms |
344 KB |
Output is correct |
34 |
Correct |
1 ms |
344 KB |
Output is correct |
35 |
Correct |
1 ms |
596 KB |
Output is correct |
36 |
Correct |
1 ms |
344 KB |
Output is correct |
37 |
Correct |
0 ms |
344 KB |
Output is correct |
38 |
Correct |
3 ms |
344 KB |
Output is correct |
39 |
Correct |
2 ms |
344 KB |
Output is correct |
40 |
Correct |
1 ms |
344 KB |
Output is correct |
41 |
Correct |
4 ms |
344 KB |
Output is correct |
42 |
Correct |
4 ms |
344 KB |
Output is correct |
43 |
Correct |
4 ms |
344 KB |
Output is correct |
44 |
Correct |
3 ms |
344 KB |
Output is correct |
45 |
Correct |
59 ms |
704 KB |
Output is correct |
46 |
Correct |
44 ms |
696 KB |
Output is correct |
47 |
Correct |
86 ms |
444 KB |
Output is correct |
48 |
Correct |
77 ms |
700 KB |
Output is correct |
49 |
Correct |
71 ms |
448 KB |
Output is correct |
50 |
Correct |
73 ms |
448 KB |
Output is correct |
51 |
Correct |
1 ms |
344 KB |
Output is correct |
52 |
Incorrect |
143 ms |
708 KB |
Not correct |
53 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
6 |
Correct |
0 ms |
344 KB |
Output is correct |
7 |
Correct |
0 ms |
596 KB |
Output is correct |
8 |
Correct |
0 ms |
344 KB |
Output is correct |
9 |
Correct |
2 ms |
344 KB |
Output is correct |
10 |
Correct |
2 ms |
344 KB |
Output is correct |
11 |
Correct |
3 ms |
344 KB |
Output is correct |
12 |
Correct |
2 ms |
344 KB |
Output is correct |
13 |
Correct |
1 ms |
344 KB |
Output is correct |
14 |
Correct |
0 ms |
544 KB |
Output is correct |
15 |
Correct |
1 ms |
344 KB |
Output is correct |
16 |
Correct |
0 ms |
344 KB |
Output is correct |
17 |
Correct |
1 ms |
344 KB |
Output is correct |
18 |
Correct |
0 ms |
344 KB |
Output is correct |
19 |
Correct |
2 ms |
596 KB |
Output is correct |
20 |
Correct |
2 ms |
344 KB |
Output is correct |
21 |
Correct |
0 ms |
344 KB |
Output is correct |
22 |
Correct |
2 ms |
344 KB |
Output is correct |
23 |
Correct |
2 ms |
596 KB |
Output is correct |
24 |
Correct |
2 ms |
344 KB |
Output is correct |
25 |
Correct |
3 ms |
344 KB |
Output is correct |
26 |
Correct |
44 ms |
704 KB |
Output is correct |
27 |
Correct |
40 ms |
704 KB |
Output is correct |
28 |
Correct |
68 ms |
440 KB |
Output is correct |
29 |
Correct |
68 ms |
444 KB |
Output is correct |
30 |
Correct |
76 ms |
696 KB |
Output is correct |
31 |
Correct |
83 ms |
444 KB |
Output is correct |
32 |
Correct |
0 ms |
344 KB |
Output is correct |
33 |
Correct |
0 ms |
344 KB |
Output is correct |
34 |
Correct |
1 ms |
344 KB |
Output is correct |
35 |
Correct |
1 ms |
596 KB |
Output is correct |
36 |
Correct |
1 ms |
344 KB |
Output is correct |
37 |
Correct |
0 ms |
344 KB |
Output is correct |
38 |
Correct |
3 ms |
344 KB |
Output is correct |
39 |
Correct |
2 ms |
344 KB |
Output is correct |
40 |
Correct |
1 ms |
344 KB |
Output is correct |
41 |
Correct |
4 ms |
344 KB |
Output is correct |
42 |
Correct |
4 ms |
344 KB |
Output is correct |
43 |
Correct |
4 ms |
344 KB |
Output is correct |
44 |
Correct |
3 ms |
344 KB |
Output is correct |
45 |
Correct |
59 ms |
704 KB |
Output is correct |
46 |
Correct |
44 ms |
696 KB |
Output is correct |
47 |
Correct |
86 ms |
444 KB |
Output is correct |
48 |
Correct |
77 ms |
700 KB |
Output is correct |
49 |
Correct |
71 ms |
448 KB |
Output is correct |
50 |
Correct |
73 ms |
448 KB |
Output is correct |
51 |
Correct |
1 ms |
344 KB |
Output is correct |
52 |
Incorrect |
143 ms |
708 KB |
Not correct |
53 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
6 |
Correct |
0 ms |
344 KB |
Output is correct |
7 |
Correct |
0 ms |
596 KB |
Output is correct |
8 |
Correct |
0 ms |
344 KB |
Output is correct |
9 |
Correct |
2 ms |
344 KB |
Output is correct |
10 |
Correct |
2 ms |
344 KB |
Output is correct |
11 |
Correct |
3 ms |
344 KB |
Output is correct |
12 |
Correct |
2 ms |
344 KB |
Output is correct |
13 |
Correct |
1 ms |
344 KB |
Output is correct |
14 |
Correct |
0 ms |
544 KB |
Output is correct |
15 |
Correct |
1 ms |
344 KB |
Output is correct |
16 |
Correct |
0 ms |
344 KB |
Output is correct |
17 |
Correct |
1 ms |
344 KB |
Output is correct |
18 |
Correct |
0 ms |
344 KB |
Output is correct |
19 |
Correct |
2 ms |
596 KB |
Output is correct |
20 |
Correct |
2 ms |
344 KB |
Output is correct |
21 |
Correct |
0 ms |
344 KB |
Output is correct |
22 |
Correct |
2 ms |
344 KB |
Output is correct |
23 |
Correct |
2 ms |
596 KB |
Output is correct |
24 |
Correct |
2 ms |
344 KB |
Output is correct |
25 |
Correct |
3 ms |
344 KB |
Output is correct |
26 |
Correct |
44 ms |
704 KB |
Output is correct |
27 |
Correct |
40 ms |
704 KB |
Output is correct |
28 |
Correct |
68 ms |
440 KB |
Output is correct |
29 |
Correct |
68 ms |
444 KB |
Output is correct |
30 |
Correct |
76 ms |
696 KB |
Output is correct |
31 |
Correct |
83 ms |
444 KB |
Output is correct |
32 |
Correct |
0 ms |
344 KB |
Output is correct |
33 |
Correct |
0 ms |
344 KB |
Output is correct |
34 |
Correct |
1 ms |
344 KB |
Output is correct |
35 |
Correct |
1 ms |
596 KB |
Output is correct |
36 |
Correct |
1 ms |
344 KB |
Output is correct |
37 |
Correct |
0 ms |
344 KB |
Output is correct |
38 |
Correct |
3 ms |
344 KB |
Output is correct |
39 |
Correct |
2 ms |
344 KB |
Output is correct |
40 |
Correct |
1 ms |
344 KB |
Output is correct |
41 |
Correct |
4 ms |
344 KB |
Output is correct |
42 |
Correct |
4 ms |
344 KB |
Output is correct |
43 |
Correct |
4 ms |
344 KB |
Output is correct |
44 |
Correct |
3 ms |
344 KB |
Output is correct |
45 |
Correct |
59 ms |
704 KB |
Output is correct |
46 |
Correct |
44 ms |
696 KB |
Output is correct |
47 |
Correct |
86 ms |
444 KB |
Output is correct |
48 |
Correct |
77 ms |
700 KB |
Output is correct |
49 |
Correct |
71 ms |
448 KB |
Output is correct |
50 |
Correct |
73 ms |
448 KB |
Output is correct |
51 |
Correct |
1 ms |
344 KB |
Output is correct |
52 |
Incorrect |
143 ms |
708 KB |
Not correct |
53 |
Halted |
0 ms |
0 KB |
- |