답안 #919414

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
919414 2024-01-31T17:49:36 Z nasir_bashirov CEOI16_icc (CEOI16_icc) C++11
7 / 100
229 ms 852 KB
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")

#include <bits/stdc++.h>
#include "icc.h"
using namespace std;

#define db long double
#define ll long long
#define pii pair<int, int>
#define pll pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define vii vector<pii>
#define vll vector<pll>
// #define endl '\n'
#define all(x) x.begin(), x.end()
#define fastio\
    ios_base::sync_with_stdio(0);\
    cin.tie(0);\
    cout.tie(0)\

// #define int long long

mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

int n;

struct DSU{
    vi par;
    int components;
    DSU(int sz){
        components = sz;
        par.resize(sz + 5, -1);
    }
    int Find(int u){
        if(par[u] < 0)   return u;
        else    return par[u] = Find(par[u]);
    }
    bool Union(int u, int v){
        u = Find(u), v = Find(v);
        if(u != v){
            if(par[u] < par[v]){
                swap(u, v);
            }
            par[u] += par[v];
            par[v] = u;
            components--;
            return true;
        }
        else{
            return false;
        }
    }
};

void run(int N){
    n = N;
    DSU g(n);
    for(int t = 1; t < n; t++){
        bool f = false;
        for(int i = 1; i <= n and !f; i++){
            for(int j = 1; j <= n; j++){
                if(i == j or g.Find(i) == g.Find(j))    continue;
                int a[] = {i}, b[] = {j};
                if(query(1, 1, a, b)){
                    g.Union(i, j);
                    setRoad(i, j);
                    f = true;
                }
            }
        }
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 55 ms 612 KB Ok! 1470 queries used.
2 Correct 61 ms 600 KB Ok! 1466 queries used.
# 결과 실행 시간 메모리 Grader output
1 Incorrect 199 ms 612 KB Number of queries more than 5000 out of 2500
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 229 ms 620 KB Number of queries more than 4500 out of 2250
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 223 ms 612 KB Number of queries more than 4000 out of 2000
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 187 ms 608 KB Number of queries more than 3550 out of 1775
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 183 ms 852 KB Number of queries more than 3250 out of 1625
2 Halted 0 ms 0 KB -