Submission #941656

# Submission time Handle Problem Language Result Execution time Memory
941656 2024-03-09T08:53:58 Z benjaminkleyn Finding Routers (IOI20_routers) C++17
98.2848 / 100
4 ms 856 KB
#include <bits/stdc++.h>
#include "routers.h"
using namespace std;

map<int, int> mem;
int detect(int x)
{
    if (mem.find(x) != mem.end())
        return mem[x];
    return mem[x] = use_detector(x);
}
bool check(int x, int i)
{
    if (mem.find(x) != mem.end())
        return mem[x] <= i;
    auto it = prev(mem.upper_bound(x));
    return (it->second <= i);
}

vector<int> find_routers(int l, int n, int q) {
    l -= l % 2;
    mem = map<int, int>();
    vector<int> ans(n, 0);
    mem[0] = 0;

    for (int i = 0, x = 0; i < n - 1; i++)
    {
        int prev = x;
        for (int k = 20; k >= 0; k--)
            while (x + (1 << k) <= l && check(x + (1 << k), i) && detect(x + (1 << k)) == i)
                x += (1 << k);
        ans[i + 1] = x + (x - ans[i]);
    }
	return ans;
}

Compilation message

routers.cpp: In function 'std::vector<int> find_routers(int, int, int)':
routers.cpp:28:13: warning: unused variable 'prev' [-Wunused-variable]
   28 |         int prev = x;
      |             ^~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 344 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 348 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 548 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 344 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 600 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 600 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 344 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 4 ms 604 KB Partial score
2 Partially correct 3 ms 776 KB Partial score
3 Partially correct 3 ms 604 KB Partial score
4 Partially correct 4 ms 604 KB Partial score
5 Partially correct 4 ms 604 KB Partial score
6 Partially correct 3 ms 604 KB Partial score
7 Partially correct 3 ms 600 KB Partial score
8 Partially correct 3 ms 604 KB Partial score
9 Partially correct 4 ms 604 KB Partial score
10 Partially correct 3 ms 600 KB Partial score
11 Correct 2 ms 348 KB Output is correct
12 Partially correct 3 ms 604 KB Partial score
13 Correct 1 ms 348 KB Output is correct
14 Partially correct 4 ms 600 KB Partial score
15 Partially correct 4 ms 604 KB Partial score
16 Partially correct 3 ms 600 KB Partial score
17 Partially correct 3 ms 600 KB Partial score
18 Partially correct 3 ms 604 KB Partial score
19 Partially correct 3 ms 604 KB Partial score
20 Partially correct 3 ms 604 KB Partial score
21 Partially correct 3 ms 856 KB Partial score