Submission #866113

# Submission time Handle Problem Language Result Execution time Memory
866113 2023-10-25T12:39:08 Z danikoynov The Potion of Great Power (CEOI20_potion) C++14
0 / 100
87 ms 17284 KB
#include<bits/stdc++.h>

using namespace std;
    


const int maxn = 1e5 + 10;
int n, h[maxn];

void init(int N, int D, int H[]) 
{
    for (int i = 0; i < N; i ++)
    {
        h[i] = H[i];
    }
}

const int maxq = 50010;

pair < int, int > edge[maxq];
unordered_set < int > act[maxn];
int u;
void curseChanges(int U, int A[], int B[]) 
{
    u = U;
    for (int i = 0; i < U; i ++) 
    {
        edge[i] = {A[i], B[i]};
    }

    for (int i = 0; i < n; i ++)
    {
        for (int j = 0; j < U; j ++)
        {
            int a = edge[i].first, b = edge[i].second;
            if (i != a && i != b)
                continue;
            int v = b;
            if (i == b)
                v = a;

            if (act[i].find(v) == act[i].end())
                act[i].insert(v);
            else
                act[i].erase(v);
            
        }
    }
}

int question(int x, int y, int v) 
{
    if (v == u)
    {
        vector < int > hx, hy;
        for (int cur : act[x])
            hx.push_back(h[cur]);
        for (int cur : act[y])
            hy.push_back(h[cur]);

        sort(hx.begin(), hx.end());
        sort(hy.begin(), hy.end());

        int ans = 1e9;
        int pt = 0;
        for (int i = 0; i < hx.size(); i ++)
        {
            while(pt < hy.size() && hy[pt] <= hx[i])
                pt ++;

            if (pt != 0)
                ans = min(ans, abs(hx[i] - hy[pt - 1]));
            if (pt != hy.size())
                ans = min(ans, abs(hx[i] - hy[pt]));
        }
        return ans;
    }
    set < int > sx, sy;

    for (int i = 0; i < v; i ++)
    {
        int a = edge[i].first;
        int b = edge[i].second;

        if (a == x)
        {
            if (sx.find(b) == sx.end())
                sx.insert(b);
            else
                sx.erase(b);
        }
        
        if (b == x)
        {
            if (sx.find(a) == sx.end())
                sx.insert(a);
            else
                sx.erase(a);
        }

        if (a == y)
        {
            if (sy.find(b) == sy.end())
                sy.insert(b);
            else
                sy.erase(b);
        }
        
        if (b == y)
        {
            if (sy.find(a) == sy.end())
                sy.insert(a);
            else
                sy.erase(a);
        }
    }

    if (sx.empty() && sy.empty())
        return 1e9;

    int ans = 1e9;
    for (int a : sx)
        for (int b : sy)
            ans = min(ans, abs(h[a] - h[b]));
    
    return ans;
    
}
/**
6 5 11 4
2 42 1000 54 68 234
0 1
2 0
3 4
3 5
3 5
1 3
5 3
0 5
3 0
1 3
3 5
0 3 4 26
*/

Compilation message

potion.cpp: In function 'int question(int, int, int)':
potion.cpp:66:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   66 |         for (int i = 0; i < hx.size(); i ++)
      |                         ~~^~~~~~~~~~~
potion.cpp:68:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |             while(pt < hy.size() && hy[pt] <= hx[i])
      |                   ~~~^~~~~~~~~~~
potion.cpp:73:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |             if (pt != hy.size())
      |                 ~~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 5720 KB Incorrect
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 5968 KB Incorrect
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 40 ms 17284 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 36 ms 17072 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 87 ms 6232 KB Incorrect
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 5720 KB Incorrect
2 Halted 0 ms 0 KB -