Submission #1222545

#TimeUsernameProblemLanguageResultExecution timeMemory
1222545KindaGoodGamesThe Potion of Great Power (CEOI20_potion)C++20
14 / 100
1906 ms51332 KiB
#pragma GCC optimize("O3, unroll-loops, Ofast")
#include<bits/stdc++.h>

using namespace std;
 
#define pii pair<int,int>

int n, d;
vector<int> height;

vector<set<int>> adj;
vector<set<int>> reach;

vector<pii> change;
void init(int N, int D, int H[]) { 
    height.resize(N);
    n = N;
    for(int i = 0; i < n; i++){
        height[i] = H[i];
    }
}


void curseChanges(int U, int A[], int B[]) {
    change.resize(U); 
    reach.resize(n);
    adj.resize(n);
    for(int i = 0;i < U; i++){
        change[i] = {A[i], B[i]};
    }
    for(int i = 0; i < U; i++){
        int a,b;
        tie(a,b) = change[i];
        if(adj[a].count(b)){
            adj[a].erase(b);
            adj[b].erase(a);
        }else{
            adj[a].insert(b);
            adj[b].insert(a);
        }
    }   

    for(int i = 0; i < n; i++){
        for(auto u : adj[i]){
            reach[i].insert(height[u]);
        }
    }
}

int question(int x, int y, int v) { 
    int mi = 1e9; 
    for(auto u : reach[x]){
        { 
            auto it = reach[y].lower_bound(u);
            if(it != reach[y].end()){
                mi = min(mi, abs(u-(*it)));
            }
        }
        { 
            auto it = reach[y].upper_bound(u);
            if(it != reach[y].begin()){
                it--;
                mi = min(mi, abs(u-(*it)));
            } 
        }
    }
    return mi;
}

Compilation message (stderr)

potion.cpp:1:47: warning: bad option '-f unroll-loops' to pragma 'optimize' [-Wpragmas]
    1 | #pragma GCC optimize("O3, unroll-loops, Ofast")
      |                                               ^
potion.cpp:1:47: warning: bad option '-f Ofast' to pragma 'optimize' [-Wpragmas]
potion.cpp:15:32: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
   15 | void init(int N, int D, int H[]) {
      |                                ^
potion.cpp:15:32: warning: bad option '-f Ofast' to attribute 'optimize' [-Wattributes]
potion.cpp:24:42: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
   24 | void curseChanges(int U, int A[], int B[]) {
      |                                          ^
potion.cpp:24:42: warning: bad option '-f Ofast' to attribute 'optimize' [-Wattributes]
potion.cpp:50:33: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
   50 | int question(int x, int y, int v) {
      |                                 ^
potion.cpp:50:33: warning: bad option '-f Ofast' to attribute 'optimize' [-Wattributes]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...