提出 #34929469


ソースコード 拡げる

#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
// #pragma GCC target("popcnt")

using namespace std;
using namespace __gnu_pbds;

template <typename t>
using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;

// #pragma gcc optimize("ofast")
// #pragma gcc target("avx,avx2,fma")


#define int long long

#define all(x) (x).begin(), (x).end()


#define pb push_back
#define endl '\n'
#define fi first
#define se second

// const int mod = 1e9 + 7;

const int mod=998'244'353;


const long long INF = 2e18 + 10;
// const int INF=1e9+10;

#define readv(x, n)   \
    vector<int> x(n); \
    for (auto &i : x) \
        cin >> i;



template <typename t>
    using v = vector<t>;

template <typename t>
    using vv = vector<vector<t>>;

template <typename t>
    using vvv = vector<vector<vector<t>>>;

typedef vector<int> vi;
typedef vector<double> vd;
typedef vector<vector<int>> vvi;
typedef vector<vector<vector<int>>> vvvi;
typedef vector<vector<vector<vector<int>>>> vvvvi;
typedef vector<vector<double>> vvd;

typedef pair<int, int> pii;



int multiply(int a, int b, int in_mod) { return (int)(1ll * a * b % in_mod); }
int mult_identity(int a) { return 1; }



const double pi = acosl(-1);



auto power(auto a, auto b, const int in_mod)
{

    auto prod = mult_identity(a);
    auto mult = a % in_mod;
    while (b != 0)
    {
        if (b % 2)
        {
            prod = multiply(prod, mult, in_mod);
        }
        if(b/2)
        mult = multiply(mult, mult, in_mod);
        b /= 2;
    }
    return prod;
}
auto mod_inv(auto q, const int in_mod)
{
    return power(q, in_mod - 2, in_mod);
}


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



#define stp cout << fixed << setprecision(20);




struct DSU {
    std::vector<int> f, siz;
    DSU(int n) : f(n), siz(n, 1) { std::iota(f.begin(), f.end(), 0); }
    int leader(int x) {
        while (x != f[x]) x = f[x] = f[f[x]];
        return x;
    }
    bool same(int x, int y) { return leader(x) == leader(y); }
    bool merge(int x, int y) {
        x = leader(x);
        y = leader(y);

        if (x == y) return false;

        if(siz[x]< siz[y])
            swap(x,y);
        
        siz[x] += siz[y];
        f[y] = x;
        return true;
    }
    int size(int x) { return siz[leader(x)]; }
};

void solv()
{
    DSU uf(3e7 + 100);

    auto mp = [&](int x, int y)
    {
        return (x + 1000) * 3000 + y + 1000;

    };


    int n;
    cin>>n;
    vector<pair<int,int>>data;

    set<int> exists;

    auto merge = [&](int a, int b)
    {
        if(exists.find(b)!=exists.end())
            uf.merge(a,b);

    };
    for(int i = 0;i<n;i++)
    {
        int x, y;
        cin>>x>>y;
        data.push_back({x, y});
        exists.insert(mp(x,y));

        merge(mp(x,y), mp(x-1,y-1));
        merge(mp(x,y), mp(x-1,y));
        merge(mp(x,y), mp(x,y-1));
        merge(mp(x,y), mp(x,y+1));
        merge(mp(x,y), mp(x+1,y));
        merge(mp(x,y), mp(x+1,y+1));
    }

    int comps = 0;
    for(auto[x,y]:data)
    {
        if(uf.leader(mp(x,y)) == mp(x,y))
            comps++;
    }
    cout<<comps<<endl;

}

void solve()
{
    int t = 1;
    // cin>>t;
    while(t--)
    {
        solv();
    }
}




signed main()
{



    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cerr.tie(NULL);

    auto clk = clock();
    // -------------------------------------Code starts here---------------------------------------------------------------------

    signed t = 1;
    // cin >> t;

    for (signed test = 1; test <= t; test++)
    {
        // cout<<"Case #"<<test<<": ";

        solve();
    }

    // -------------------------------------Code ends here------------------------------------------------------------------

    clk = clock() - clk;

    #ifndef ONLINE_JUDGE
    cerr << fixed << setprecision(6) << "\nTime: " << ((float)clk) / CLOCKS_PER_SEC << "\n";
    #endif
    return 0;
}

/*
000100

1000100

1 0 -1 -2 -1 -2 -3
*/

提出情報

提出日時
問題 D - Do use hexagon grid
ユーザ Wernier
言語 C++ (GCC 9.2.1)
得点 400
コード長 4282 Byte
結果 AC
実行時間 321 ms
メモリ 471988 KiB

コンパイルエラー

./Main.cpp: In function ‘long long int mult_identity(long long int)’:
./Main.cpp:63:23: warning: unused parameter ‘a’ [-Wunused-parameter]
   63 | int mult_identity(int a) { return 1; }
      |                       ^
./Main.cpp: At global scope:
./Main.cpp:71:12: warning: use of ‘auto’ in parameter declaration only available with ‘-fconcepts’
   71 | auto power(auto a, auto b, const int in_mod)
      |            ^~~~
./Main.cpp:71:20: warning: use of ‘auto’ in parameter declaration only available with ‘-fconcepts’
   71 | auto power(auto a, auto b, const int in_mod)
      |                    ^~~~
./Main.cpp:88:14: warning: use of ‘auto’ in parameter declaration only available with ‘-fconcepts’
   88 | auto mod_inv(auto q, const int in_mod)
      |              ^~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 3
AC × 67
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
sample_01.txt AC 321 ms 471424 KiB
sample_02.txt AC 297 ms 471896 KiB
sample_03.txt AC 297 ms 471888 KiB
test_01.txt AC 296 ms 471836 KiB
test_02.txt AC 300 ms 471916 KiB
test_03.txt AC 301 ms 471904 KiB
test_04.txt AC 296 ms 471888 KiB
test_05.txt AC 296 ms 471924 KiB
test_06.txt AC 296 ms 471864 KiB
test_07.txt AC 297 ms 471924 KiB
test_08.txt AC 302 ms 471836 KiB
test_09.txt AC 297 ms 471860 KiB
test_10.txt AC 295 ms 471860 KiB
test_11.txt AC 298 ms 471960 KiB
test_12.txt AC 297 ms 471888 KiB
test_13.txt AC 297 ms 471900 KiB
test_14.txt AC 300 ms 471892 KiB
test_15.txt AC 299 ms 471920 KiB
test_16.txt AC 297 ms 471900 KiB
test_17.txt AC 296 ms 471860 KiB
test_18.txt AC 297 ms 471916 KiB
test_19.txt AC 298 ms 471896 KiB
test_20.txt AC 296 ms 471828 KiB
test_21.txt AC 295 ms 471884 KiB
test_22.txt AC 295 ms 471924 KiB
test_23.txt AC 299 ms 471904 KiB
test_24.txt AC 298 ms 471908 KiB
test_25.txt AC 298 ms 471956 KiB
test_26.txt AC 297 ms 471900 KiB
test_27.txt AC 298 ms 471924 KiB
test_28.txt AC 295 ms 471856 KiB
test_29.txt AC 298 ms 471924 KiB
test_30.txt AC 300 ms 471908 KiB
test_31.txt AC 298 ms 471864 KiB
test_32.txt AC 297 ms 471984 KiB
test_33.txt AC 298 ms 471900 KiB
test_34.txt AC 296 ms 471852 KiB
test_35.txt AC 297 ms 471852 KiB
test_36.txt AC 302 ms 471924 KiB
test_37.txt AC 299 ms 471868 KiB
test_38.txt AC 299 ms 471852 KiB
test_39.txt AC 296 ms 471956 KiB
test_40.txt AC 292 ms 471916 KiB
test_41.txt AC 302 ms 471832 KiB
test_42.txt AC 298 ms 471852 KiB
test_43.txt AC 297 ms 471900 KiB
test_44.txt AC 297 ms 471896 KiB
test_45.txt AC 298 ms 471900 KiB
test_46.txt AC 298 ms 471852 KiB
test_47.txt AC 301 ms 471852 KiB
test_48.txt AC 297 ms 471828 KiB
test_49.txt AC 298 ms 471888 KiB
test_50.txt AC 297 ms 471868 KiB
test_51.txt AC 297 ms 471832 KiB
test_52.txt AC 301 ms 471920 KiB
test_53.txt AC 299 ms 471924 KiB
test_54.txt AC 298 ms 471864 KiB
test_55.txt AC 297 ms 471988 KiB
test_56.txt AC 297 ms 471904 KiB
test_57.txt AC 298 ms 471932 KiB
test_58.txt AC 295 ms 471892 KiB
test_59.txt AC 298 ms 471920 KiB
test_60.txt AC 296 ms 471836 KiB
test_61.txt AC 298 ms 471920 KiB
test_62.txt AC 297 ms 471828 KiB
test_63.txt AC 304 ms 471908 KiB
test_64.txt AC 300 ms 471828 KiB