# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
211270 |
2020-03-19T21:39:16 Z |
tri |
Library (JOI18_library) |
C++14 |
|
565 ms |
632 KB |
#include <bits/stdc++.h>
#include "library.h"
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef vector<int> vi;
typedef vector<ld> vd;
typedef vector<ll> vl;
#define pb push_back
#define f first
#define s second
namespace debug {
const int DEBUG = true;
template<class T1, class T2>
void pr(const pair<T1, T2> &x);
template<class T, size_t SZ>
void pr(const array<T, SZ> &x);
template<class T>
void pr(const vector<T> &x);
template<class T>
void pr(const set<T> &x);
template<class T1, class T2>
void pr(const map<T1, T2> &x);
template<class T>
void pr(const T &x) { if (DEBUG) cout << x; }
template<class T, class... Ts>
void pr(const T &first, const Ts &... rest) { pr(first), pr(rest...); }
template<class T1, class T2>
void pr(const pair<T1, T2> &x) { pr("{", x.f, ", ", x.s, "}"); }
template<class T>
void prIn(const T &x) {
pr("{");
bool fst = 1;
for (auto &a : x) {
pr(fst ? "" : ", ", a), fst = 0;
}
pr("}");
}
template<class T, size_t SZ>
void pr(const array<T, SZ> &x) { prIn(x); }
template<class T>
void pr(const vector<T> &x) { prIn(x); }
template<class T>
void pr(const set<T> &x) { prIn(x); }
template<class T1, class T2>
void pr(const map<T1, T2> &x) { prIn(x); }
void ps() { pr("\n"), cout << flush; }
template<class Arg, class... Args>
void ps(const Arg &first, const Args &... rest) {
pr(first, " ");
ps(rest...);
}
}
using namespace debug;
const int MAXN = 1005;
int found[MAXN];
void Solve(int N) {
if(N == 1){
Answer({1});
return;
}
memset(found, 0, sizeof(found));
vi x;
for (int i = 0; i < N; i++) {
x.pb(1);
}
int anchor = -1;
for (int i = 0; i < N; i++) {
x[i] = 0;
int res = Query(x);
if (res == 1) {
anchor = i;
break;
}
x[i] = 1;
}
assert(anchor != -1);
found[anchor] = true;
vi ans;
ans.pb(anchor);
fill(x.begin(), x.end(), 0);
x[anchor] = 1;
for (int i = 1; i < N; i++) {
vi search;
for (int j = 0; j < N; j++) {
if (!found[j]) {
search.pb(j);
}
}
while (search.size() > 1) {
fill(x.begin(), x.end(), 0);
// ps(search);
vi half(search.begin(), search.begin() + search.size() / 2);
for (int a : half) {
x[a] = 1;
}
int res1 = Query(x);
for (int j = 0; j < N; j++) {
if (found[j]) {
x[j] = 1;
}
}
int res2 = Query(x);
// ps(res1, res2);
if (res1 == res2) {
search = half;
} else {
search.erase(search.begin(), search.begin() + search.size() / 2);
}
}
// ps(search);
int cur = search[0];
found[cur] = true;
x[cur] = 1;
ans.pb(cur);
}
for (int i = 0; i < N; i++) {
ans[i]++;
}
// ps(ans);
Answer(ans);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
42 ms |
384 KB |
# of queries: 2375 |
2 |
Correct |
50 ms |
256 KB |
# of queries: 2409 |
3 |
Correct |
40 ms |
384 KB |
# of queries: 2648 |
4 |
Correct |
55 ms |
256 KB |
# of queries: 2595 |
5 |
Correct |
57 ms |
436 KB |
# of queries: 2508 |
6 |
Correct |
45 ms |
256 KB |
# of queries: 2551 |
7 |
Correct |
53 ms |
384 KB |
# of queries: 2544 |
8 |
Correct |
50 ms |
256 KB |
# of queries: 2420 |
9 |
Correct |
54 ms |
384 KB |
# of queries: 2546 |
10 |
Correct |
34 ms |
384 KB |
# of queries: 1474 |
11 |
Correct |
5 ms |
256 KB |
# of queries: 0 |
12 |
Correct |
5 ms |
256 KB |
# of queries: 1 |
13 |
Correct |
5 ms |
256 KB |
# of queries: 4 |
14 |
Correct |
5 ms |
256 KB |
# of queries: 7 |
15 |
Correct |
5 ms |
256 KB |
# of queries: 77 |
16 |
Correct |
8 ms |
384 KB |
# of queries: 183 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
42 ms |
384 KB |
# of queries: 2375 |
2 |
Correct |
50 ms |
256 KB |
# of queries: 2409 |
3 |
Correct |
40 ms |
384 KB |
# of queries: 2648 |
4 |
Correct |
55 ms |
256 KB |
# of queries: 2595 |
5 |
Correct |
57 ms |
436 KB |
# of queries: 2508 |
6 |
Correct |
45 ms |
256 KB |
# of queries: 2551 |
7 |
Correct |
53 ms |
384 KB |
# of queries: 2544 |
8 |
Correct |
50 ms |
256 KB |
# of queries: 2420 |
9 |
Correct |
54 ms |
384 KB |
# of queries: 2546 |
10 |
Correct |
34 ms |
384 KB |
# of queries: 1474 |
11 |
Correct |
5 ms |
256 KB |
# of queries: 0 |
12 |
Correct |
5 ms |
256 KB |
# of queries: 1 |
13 |
Correct |
5 ms |
256 KB |
# of queries: 4 |
14 |
Correct |
5 ms |
256 KB |
# of queries: 7 |
15 |
Correct |
5 ms |
256 KB |
# of queries: 77 |
16 |
Correct |
8 ms |
384 KB |
# of queries: 183 |
17 |
Correct |
550 ms |
256 KB |
# of queries: 17982 |
18 |
Correct |
557 ms |
256 KB |
# of queries: 17293 |
19 |
Correct |
526 ms |
632 KB |
# of queries: 17467 |
20 |
Correct |
522 ms |
504 KB |
# of queries: 16325 |
21 |
Correct |
408 ms |
256 KB |
# of queries: 15324 |
22 |
Correct |
516 ms |
504 KB |
# of queries: 17669 |
23 |
Correct |
498 ms |
384 KB |
# of queries: 17224 |
24 |
Correct |
174 ms |
384 KB |
# of queries: 7915 |
25 |
Correct |
565 ms |
256 KB |
# of queries: 17136 |
26 |
Correct |
467 ms |
384 KB |
# of queries: 15963 |
27 |
Correct |
188 ms |
256 KB |
# of queries: 8040 |
28 |
Correct |
451 ms |
336 KB |
# of queries: 15957 |
29 |
Correct |
506 ms |
256 KB |
# of queries: 15939 |
30 |
Correct |
474 ms |
256 KB |
# of queries: 15957 |