提出 #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
*/
提出情報
コンパイルエラー
./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 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |