Submission #795457

# Submission time Handle Problem Language Result Execution time Memory
795457 2023-07-27T10:01:53 Z SlavicG Minerals (JOI19_minerals) C++17
40 / 100
20 ms 2012 KB
#include <bits/stdc++.h>
#include "minerals.h"
using namespace std;

mt19937 rng(69);
void Solve(int n) {
    vector<int> p1, p2;
    int ans = 0, prevans = -1;
    vector<int> bulanea(2 * n);
    iota(bulanea.begin(), bulanea.end(), 1);
    shuffle(bulanea.begin(), bulanea.end(), rng);
    for(int i: bulanea) {
        ans = Query(i);
        if(ans == prevans) {
            p2.push_back(i);
            Query(i);
        } else {
            p1.push_back(i);
        }
        prevans = ans;
    }
    assert(p1.size() == n && p2.size() == n);
    vector<int> pr(n, 0);
    for(int bit = 0; (1 << bit) < n; ++bit) {
        for(int i = 0; i < n; ++i) {
            if(i >> bit & 1) continue;
            prevans = Query(p1[i]);
        }   
        for(int i = 0; i < n; ++i) {
            int ans = Query(p2[i]);
            if(ans == prevans) {
                pr[i] += (1 << bit);
            }
            Query(p2[i]);
        }
        for(int i = 0; i < n; ++i) {
            if(i >> bit & 1) continue;
            prevans = Query(p1[i]);
        }
    }
    for(int i = 0; i < n; ++i) {
        Answer(p2[i], p1[pr[i]]);
    }
}
/*
4
1 5
2 6
3 4
7 8
*/

Compilation message

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from minerals.cpp:1:
minerals.cpp: In function 'void Solve(int)':
minerals.cpp:22:22: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   22 |     assert(p1.size() == n && p2.size() == n);
      |            ~~~~~~~~~~^~~~
minerals.cpp:22:40: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   22 |     assert(p1.size() == n && p2.size() == n);
      |                              ~~~~~~~~~~^~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 2 ms 464 KB Output is correct
4 Correct 4 ms 720 KB Output is correct
5 Correct 8 ms 936 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 2 ms 464 KB Output is correct
8 Correct 4 ms 720 KB Output is correct
9 Correct 8 ms 936 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 5 ms 848 KB Output is correct
12 Correct 8 ms 1064 KB Output is correct
13 Correct 8 ms 976 KB Output is correct
14 Correct 8 ms 976 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 2 ms 464 KB Output is correct
8 Correct 4 ms 720 KB Output is correct
9 Correct 8 ms 936 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 5 ms 848 KB Output is correct
12 Correct 8 ms 1064 KB Output is correct
13 Correct 8 ms 976 KB Output is correct
14 Correct 8 ms 976 KB Output is correct
15 Incorrect 20 ms 2012 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 2 ms 464 KB Output is correct
8 Correct 4 ms 720 KB Output is correct
9 Correct 8 ms 936 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 5 ms 848 KB Output is correct
12 Correct 8 ms 1064 KB Output is correct
13 Correct 8 ms 976 KB Output is correct
14 Correct 8 ms 976 KB Output is correct
15 Incorrect 20 ms 2012 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 2 ms 464 KB Output is correct
8 Correct 4 ms 720 KB Output is correct
9 Correct 8 ms 936 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 5 ms 848 KB Output is correct
12 Correct 8 ms 1064 KB Output is correct
13 Correct 8 ms 976 KB Output is correct
14 Correct 8 ms 976 KB Output is correct
15 Incorrect 20 ms 2012 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 2 ms 464 KB Output is correct
8 Correct 4 ms 720 KB Output is correct
9 Correct 8 ms 936 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 5 ms 848 KB Output is correct
12 Correct 8 ms 1064 KB Output is correct
13 Correct 8 ms 976 KB Output is correct
14 Correct 8 ms 976 KB Output is correct
15 Incorrect 20 ms 2012 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 2 ms 464 KB Output is correct
8 Correct 4 ms 720 KB Output is correct
9 Correct 8 ms 936 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 5 ms 848 KB Output is correct
12 Correct 8 ms 1064 KB Output is correct
13 Correct 8 ms 976 KB Output is correct
14 Correct 8 ms 976 KB Output is correct
15 Incorrect 20 ms 2012 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 2 ms 464 KB Output is correct
8 Correct 4 ms 720 KB Output is correct
9 Correct 8 ms 936 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 5 ms 848 KB Output is correct
12 Correct 8 ms 1064 KB Output is correct
13 Correct 8 ms 976 KB Output is correct
14 Correct 8 ms 976 KB Output is correct
15 Incorrect 20 ms 2012 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -