Submission #34953862


Source Code Expand

#include <bits/stdc++.h>
#define M_PI 3.14159265358979323846
typedef long long ll;
const int INF = 1e9;
const int MOD = 1e9 + 7;
const ll LINF = 1e18;
using namespace std;
class UnionFind {
public:
    vector <ll> par; // 各元の親を表す配列
    vector <ll> siz; // 素集合のサイズを表す配列(1 で初期化)

    // Constructor
    UnionFind(ll sz_) : par(sz_), siz(sz_, 1) {
        for (ll i = 0; i < sz_; ++i) par[i] = i; // 初期では親は自分自身
    }
    void init(ll sz_) {
        par.resize(sz_);
        siz.resize(sz_, 1);
        for (ll i = 0; i < sz_; ++i) par[i] = i; // 初期では親は自分自身
    }

    // Member Function
    // Find
    ll root(ll x) { // 根の検索
        while (par[x] != x) {
            x = par[x] = par[par[x]]; // x の親の親を x の親とする
        }
        return x;
    }

    // Union(Unite, Merge)
    bool merge(ll x, ll y) {
        x = root(x);
        y = root(y);
        if (x == y) return false;
        // merge technique(データ構造をマージするテク.小を大にくっつける)
        if (siz[x] < siz[y]) swap(x, y);
        siz[x] += siz[y];
        par[y] = x;
        return true;
    }

    bool issame(ll x, ll y) { // 連結判定
        return root(x) == root(y);
    }

    ll size(ll x) { // 素集合のサイズ
        return siz[root(x)];
    }
};
int main(){

    int N;
    cin >> N;
    vector<int> X(N), Y(N);
    UnionFind Judge(2000*2000+1);
    vector<int> J(2000 * 2000 + 1);
    for (int i = 0; i < N; i++) {
        cin >> X[i] >> Y[i];
        J[(X[i] + 1000) * 2000 + (Y[i] + 1000)] = 1;

    }
    int ans = 0;
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            if (abs(X[i] - X[j]) <= 1 && abs(Y[i] - Y[j] <= 1)) {
                Judge.merge((X[i] + 1000) * 2000 + (Y[i] + 1000), (X[j] + 1000) * 2000 + (Y[j] + 1000));
            }
        }
   
    }
    for (int i = 0; i < 2000 * 2000 + 1; i++) {
        if (Judge.root(i) == i && J[i] == 1)ans++;
    }
    cout << ans << endl;
    return 0;
}

Submission Info

Submission Time
Task D - Do use hexagon grid
User amaoto
Language C++ (GCC 9.2.1)
Score 0
Code Size 2159 Byte
Status RE
Exec Time 152 ms
Memory 81288 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 1
WA × 2
AC × 9
WA × 55
RE × 3
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt
Case Name Status Exec Time Memory
sample_01.txt WA 64 ms 81280 KiB
sample_02.txt WA 63 ms 81276 KiB
sample_03.txt AC 63 ms 81108 KiB
test_01.txt AC 60 ms 81276 KiB
test_02.txt AC 61 ms 81068 KiB
test_03.txt WA 63 ms 81136 KiB
test_04.txt WA 63 ms 81280 KiB
test_05.txt WA 63 ms 81280 KiB
test_06.txt WA 64 ms 81216 KiB
test_07.txt WA 61 ms 81116 KiB
test_08.txt WA 63 ms 81148 KiB
test_09.txt WA 62 ms 81228 KiB
test_10.txt WA 63 ms 81212 KiB
test_11.txt WA 65 ms 81148 KiB
test_12.txt WA 64 ms 81056 KiB
test_13.txt WA 63 ms 81228 KiB
test_14.txt WA 65 ms 81120 KiB
test_15.txt WA 64 ms 81284 KiB
test_16.txt WA 62 ms 81280 KiB
test_17.txt WA 63 ms 81220 KiB
test_18.txt WA 63 ms 81152 KiB
test_19.txt WA 63 ms 81276 KiB
test_20.txt WA 63 ms 81216 KiB
test_21.txt WA 63 ms 81112 KiB
test_22.txt WA 63 ms 81276 KiB
test_23.txt WA 61 ms 81220 KiB
test_24.txt RE 150 ms 81240 KiB
test_25.txt WA 64 ms 81064 KiB
test_26.txt WA 64 ms 81284 KiB
test_27.txt WA 63 ms 81224 KiB
test_28.txt WA 65 ms 81288 KiB
test_29.txt WA 68 ms 81224 KiB
test_30.txt WA 62 ms 81280 KiB
test_31.txt AC 64 ms 81224 KiB
test_32.txt WA 63 ms 81056 KiB
test_33.txt WA 66 ms 81284 KiB
test_34.txt WA 66 ms 81280 KiB
test_35.txt WA 71 ms 81132 KiB
test_36.txt WA 63 ms 81064 KiB
test_37.txt AC 64 ms 81068 KiB
test_38.txt WA 63 ms 81064 KiB
test_39.txt WA 65 ms 81228 KiB
test_40.txt WA 64 ms 81280 KiB
test_41.txt WA 64 ms 81212 KiB
test_42.txt WA 68 ms 81148 KiB
test_43.txt AC 66 ms 81148 KiB
test_44.txt WA 65 ms 81284 KiB
test_45.txt WA 63 ms 81136 KiB
test_46.txt WA 66 ms 81280 KiB
test_47.txt WA 63 ms 81140 KiB
test_48.txt WA 65 ms 81064 KiB
test_49.txt AC 65 ms 81148 KiB
test_50.txt WA 61 ms 81276 KiB
test_51.txt WA 63 ms 81116 KiB
test_52.txt WA 65 ms 81144 KiB
test_53.txt WA 64 ms 81276 KiB
test_54.txt WA 63 ms 81280 KiB
test_55.txt AC 63 ms 81224 KiB
test_56.txt WA 67 ms 81208 KiB
test_57.txt WA 65 ms 81064 KiB
test_58.txt WA 65 ms 81064 KiB
test_59.txt WA 64 ms 81204 KiB
test_60.txt WA 66 ms 81108 KiB
test_61.txt RE 152 ms 81260 KiB
test_62.txt AC 66 ms 81224 KiB
test_63.txt RE 152 ms 81240 KiB
test_64.txt WA 63 ms 81284 KiB