From 9e34a83746986812cfe08f59249c7ec3be62246d Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 2 Jun 2024 10:27:37 +0000 Subject: [PATCH] [auto-verifier] docs commit 0cb513dd197218c5bdb31605ed7525906ea07c1a --- DP/optimizations/divide_conquer.cpp.md | 2 +- DP/optimizations/knuth.cpp.md | 2 +- ...izu_alds1_5_d_count_inversions.test.cpp.md | 2 +- DP/tests/aizu_dpl_1_d_lis.test.cpp.md | 2 +- .../yosupo_cnt_distinct_subseq.test.cpp.md | 2 +- DP/tests/yosupo_lis.test.cpp.md | 2 +- DataStructure/DSU/DisjointSet.h.md | 2 +- DataStructure/Fenwick/Fenwick.h.md | 4 +- DataStructure/HeavyLight_adamant.h.md | 8 +- DataStructure/LCA.h.md | 2 +- DataStructure/LazySegTree.h.md | 12 +- DataStructure/LiChaoSegTree.h.md | 2 +- DataStructure/RMQ.h.md | 2 +- DataStructure/RangeSet.h.md | 2 +- DataStructure/SegTree.h.md | 12 +- .../aizu_dsl_1_b_dsu_weighted.test.cpp.md | 2 +- ...sl_2_a_segment_tree_rmq_update.test.cpp.md | 2 +- .../aizu_dsl_2_b_segment_tree_sum.test.cpp.md | 2 +- .../test/aizu_dsl_2_d_rangeset.test.cpp.md | 2 +- ..._dsl_2_d_segment_tree_rangeset.test.cpp.md | 2 +- ..._dsl_2_e_segment_tree_rangeadd.test.cpp.md | 2 +- ...l_2_f_segment_tree_rangesetmin.test.cpp.md | 2 +- ...l_2_g_segment_tree_rangeaddsum.test.cpp.md | 2 +- ...l_2_h_segment_tree_rangeaddmin.test.cpp.md | 2 +- ...l_2_i_segment_tree_rangesetsum.test.cpp.md | 2 +- .../test/aizu_dsl_4_a_range_set.test.cpp.md | 2 +- .../test/aizu_grl_5_c_hld_lca.test.cpp.md | 2 +- .../test/aizu_grl_5_c_lca.test.cpp.md | 2 +- .../test/aizu_grl_5_d_hld_edge.test.cpp.md | 2 +- .../test/aizu_grl_5_e_hld_edge.test.cpp.md | 2 +- DataStructure/test/binary_trie.test.cpp.md | 2 +- DataStructure/test/mo_algorithm.test.cpp.md | 2 +- .../test/mo_algorithm_with_undo.test.cpp.md | 2 +- .../persistent_fenwick_tree_rmq.test.cpp.md | 2 +- ...gment_tree_rangeaffinepointget.test.cpp.md | 2 +- .../yosupo_rangereversesum_splay.test.cpp.md | 2 +- .../test/yukicoder_674_range_set.test.cpp.md | 2 +- Geometry/basic.h.md | 54 ++-- Geometry/circle.h.md | 6 +- Geometry/polygon.h.md | 20 +- .../aizu_cgl_1_a_basic_projection.test.cpp.md | 8 +- .../aizu_cgl_1_b_basic_reflection.test.cpp.md | 8 +- .../tests/aizu_cgl_1_c_basic_ccw.test.cpp.md | 8 +- .../tests/aizu_cgl_2_a_basic_line.test.cpp.md | 8 +- ...gl_2_b_basic_segment_intersect.test.cpp.md | 8 +- ...gl_2_c_basic_line_intersection.test.cpp.md | 8 +- ...cgl_2_d_basic_segment_distance.test.cpp.md | 8 +- .../aizu_cgl_3_a_polygon_area.test.cpp.md | 10 +- ...aizu_cgl_3_b_polygon_is_convex.test.cpp.md | 10 +- ...izu_cgl_3_c_polygon_in_polygon.test.cpp.md | 10 +- ...zu_cgl_4_a_polygon_convex_hull.test.cpp.md | 10 +- ...gl_4_b_polygon_convex_diameter.test.cpp.md | 10 +- ...izu_cgl_4_c_polygon_convex_cut.test.cpp.md | 10 +- .../aizu_cgl_5_a_closest_pair.test.cpp.md | 8 +- .../aizu_cgl_7_a_cicle_tangents.test.cpp.md | 8 +- ...l_7_d_circle_line_intersection.test.cpp.md | 8 +- ...7_e_circle_circle_intersection.test.cpp.md | 8 +- ..._cgl_7_f_circle_tangent_points.test.cpp.md | 8 +- ...g_circle_circle_tangent_points.test.cpp.md | 8 +- ...izu_cgl_7_i_circle_common_area.test.cpp.md | 8 +- Geometry/tests/polygon_in_convex.test.cpp.md | 10 +- Geometry/tests/yosupo_convex_hull.test.cpp.md | 261 ++++++++++++++++++ Geometry/tests/z_basic_ccw.test.cpp.md | 8 +- .../z_basic_segment_intersect.test.cpp.md | 8 +- Geometry/tests/z_polygon_area.test.cpp.md | 10 +- .../tests/z_polygon_convexhull.test.cpp.md | 10 +- .../tests/z_polygon_is_convex.test.cpp.md | 10 +- Graph/2sat.h.md | 76 ++--- Graph/DfsTree/BridgeArticulation.h.md | 2 +- Graph/DfsTree/StronglyConnected.h.md | 54 ++-- Graph/dijkstra.h.md | 2 +- Graph/tests/aizu_grl_1_c_floyd.test.cpp.md | 2 +- Graph/tests/aizu_grl_2_a_mst.test.cpp.md | 2 +- ...zu_grl_3_a_articulation_points.test.cpp.md | 2 +- ...izu_grl_3_c_strongly_connected.test.cpp.md | 47 ++-- ...strongly_connected_cycle_check.test.cpp.md | 55 ++-- .../aizu_grl_5_a_tree_diameter.test.cpp.md | 2 +- Graph/tests/strongly_connected.test.cpp.md | 59 ++-- Graph/tests/two_sat.test.cpp.md | 78 +++--- Graph/tests/yosupo_mst.test.cpp.md | 2 +- Graph/tree_diameter.h.md | 2 +- ML/lightbgm_example.py.md | 4 +- Math/NumberTheory/Pollard_factorize.h.md | 2 +- Math/Polynomial/NTT.h.md | 2 +- Math/Polynomial/NTT_chemthan.h.md | 2 +- Math/bigint.h.md | 6 +- Math/modint.h.md | 26 +- Math/multiplicative_functions_linear.h.md | 2 +- Math/tests/aizu_ntl_1_a_factorize.test.cpp.md | 2 +- .../tests/aizu_ntl_1_b_modulo_pow.test.cpp.md | 2 +- Math/tests/aizu_ntl_1_d_euler_phi.test.cpp.md | 2 +- .../aizu_ntl_1_e_extended_euclid.test.cpp.md | 2 +- .../tests/aizu_ntl_2_a_bigint_add.test.cpp.md | 2 +- .../tests/aizu_ntl_2_b_bigint_sub.test.cpp.md | 2 +- .../tests/aizu_ntl_2_c_bigint_mul.test.cpp.md | 2 +- ...u_ntl_2_c_bigint_mul_karatsuba.test.cpp.md | 2 +- .../tests/aizu_ntl_2_d_bigint_div.test.cpp.md | 2 +- .../tests/aizu_ntl_2_e_bigint_mod.test.cpp.md | 2 +- .../aizu_ntl_2_f_bigint_mul_fft.test.cpp.md | 2 +- Math/tests/cnt_divisors_stress.test.cpp.md | 2 +- Math/tests/euler_phi_stress.test.cpp.md | 2 +- Math/tests/is_prime_yukicoder.test.cpp.md | 2 +- Math/tests/rabin_miller_32_stress.test.cpp.md | 2 +- .../smallest_prime_factor_stress.test.cpp.md | 2 +- Math/tests/yosupo_bigint_add.test.cpp.md | 8 +- .../yosupo_primality_rabin_miller.test.cpp.md | 2 +- Misc/Die.cpp.md | 2 +- Misc/compress.h.md | 8 +- Misc/left_nearest_smaller.h.md | 2 +- ...u_dpl_3_b_largest_01_rectangle.test.cpp.md | 2 +- ...aizu_dpl_3_c_largest_histogram.test.cpp.md | 2 +- Misc/tests/yosupo_int128.test.cpp.md | 2 +- String/hash.h.md | 6 +- String/lyndon.cpp.md | 2 +- String/minmove.cpp.md | 2 +- .../aizu_alds_14_b_string_hash.test.cpp.md | 2 +- ...yukicoder_1408_string_hash_lcp.test.cpp.md | 2 +- String/tests/zfunc_hash.test.cpp.md | 2 +- buffered_reader.h.md | 18 +- index.md | 9 +- template.h.md | 154 ++++++----- 121 files changed, 819 insertions(+), 538 deletions(-) create mode 100644 Geometry/tests/yosupo_convex_hull.test.cpp.md diff --git a/DP/optimizations/divide_conquer.cpp.md b/DP/optimizations/divide_conquer.cpp.md index f395d745..544c7883 100644 --- a/DP/optimizations/divide_conquer.cpp.md +++ b/DP/optimizations/divide_conquer.cpp.md @@ -1,7 +1,7 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DP/optimizations/knuth.cpp.md b/DP/optimizations/knuth.cpp.md index 90b037ca..7b11f6c6 100644 --- a/DP/optimizations/knuth.cpp.md +++ b/DP/optimizations/knuth.cpp.md @@ -1,7 +1,7 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DP/tests/aizu_alds1_5_d_count_inversions.test.cpp.md b/DP/tests/aizu_alds1_5_d_count_inversions.test.cpp.md index ea14736b..89b77d12 100644 --- a/DP/tests/aizu_alds1_5_d_count_inversions.test.cpp.md +++ b/DP/tests/aizu_alds1_5_d_count_inversions.test.cpp.md @@ -10,7 +10,7 @@ data: - icon: ':heavy_check_mark:' path: Misc/compress.h title: Misc/compress.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DP/tests/aizu_dpl_1_d_lis.test.cpp.md b/DP/tests/aizu_dpl_1_d_lis.test.cpp.md index 18006e14..03a69b1c 100644 --- a/DP/tests/aizu_dpl_1_d_lis.test.cpp.md +++ b/DP/tests/aizu_dpl_1_d_lis.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DP/lis.h title: DP/lis.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DP/tests/yosupo_cnt_distinct_subseq.test.cpp.md b/DP/tests/yosupo_cnt_distinct_subseq.test.cpp.md index a401bfea..be6ed6d5 100644 --- a/DP/tests/yosupo_cnt_distinct_subseq.test.cpp.md +++ b/DP/tests/yosupo_cnt_distinct_subseq.test.cpp.md @@ -10,7 +10,7 @@ data: - icon: ':heavy_check_mark:' path: Misc/compress.h title: Misc/compress.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DP/tests/yosupo_lis.test.cpp.md b/DP/tests/yosupo_lis.test.cpp.md index 2f59fd5f..5d18dade 100644 --- a/DP/tests/yosupo_lis.test.cpp.md +++ b/DP/tests/yosupo_lis.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DP/lis.h title: DP/lis.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/DSU/DisjointSet.h.md b/DataStructure/DSU/DisjointSet.h.md index 6e9248d8..744c273c 100644 --- a/DataStructure/DSU/DisjointSet.h.md +++ b/DataStructure/DSU/DisjointSet.h.md @@ -48,8 +48,8 @@ data: timestamp: '2023-01-07 01:46:12+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/aizu_dsl_1_a_dsu.test.cpp - DataStructure/test/dsu.test.cpp + - DataStructure/test/aizu_dsl_1_a_dsu.test.cpp - Graph/tests/yosupo_mst.test.cpp - Graph/tests/aizu_grl_2_a_mst.test.cpp documentation_of: DataStructure/DSU/DisjointSet.h diff --git a/DataStructure/Fenwick/Fenwick.h.md b/DataStructure/Fenwick/Fenwick.h.md index ee97e668..2c5f8c7c 100644 --- a/DataStructure/Fenwick/Fenwick.h.md +++ b/DataStructure/Fenwick/Fenwick.h.md @@ -60,10 +60,10 @@ data: timestamp: '2023-01-07 01:54:04+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/fenwick_pointaddrangesum.test.cpp + - DP/tests/aizu_alds1_5_d_count_inversions.test.cpp - DataStructure/test/fenwick.test.cpp + - DataStructure/test/fenwick_pointaddrangesum.test.cpp - DataStructure/test/aizu_dsl_2_b_fenwick_aizu.test.cpp - - DP/tests/aizu_alds1_5_d_count_inversions.test.cpp documentation_of: DataStructure/Fenwick/Fenwick.h layout: document redirect_from: diff --git a/DataStructure/HeavyLight_adamant.h.md b/DataStructure/HeavyLight_adamant.h.md index bd298317..1ce847e9 100644 --- a/DataStructure/HeavyLight_adamant.h.md +++ b/DataStructure/HeavyLight_adamant.h.md @@ -242,14 +242,14 @@ data: timestamp: '2023-01-04 02:50:55+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/aizu_grl_5_c_hld_lca.test.cpp + - DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp - DataStructure/test/yosupo_hld_kth_vertex_on_path.test.cpp + - DataStructure/test/hld_vertexsetpathcomposite.test.cpp + - DataStructure/test/aizu_grl_5_c_hld_lca.test.cpp - DataStructure/test/aizu_grl_5_e_hld_edge.test.cpp - - DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp - - DataStructure/test/hld_lca.test.cpp - DataStructure/test/hld_vertexaddpathsum.test.cpp - DataStructure/test/hld_vertexaddsubtreesum.test.cpp - - DataStructure/test/hld_vertexsetpathcomposite.test.cpp + - DataStructure/test/hld_lca.test.cpp documentation_of: DataStructure/HeavyLight_adamant.h layout: document redirect_from: diff --git a/DataStructure/LCA.h.md b/DataStructure/LCA.h.md index 0a07e74e..c6c53d81 100644 --- a/DataStructure/LCA.h.md +++ b/DataStructure/LCA.h.md @@ -71,8 +71,8 @@ data: timestamp: '2022-08-11 17:15:37+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/lca.test.cpp - DataStructure/test/aizu_grl_5_c_lca.test.cpp + - DataStructure/test/lca.test.cpp documentation_of: DataStructure/LCA.h layout: document redirect_from: diff --git a/DataStructure/LazySegTree.h.md b/DataStructure/LazySegTree.h.md index fa28e85d..5ce63d39 100644 --- a/DataStructure/LazySegTree.h.md +++ b/DataStructure/LazySegTree.h.md @@ -262,16 +262,16 @@ data: timestamp: '2022-08-09 14:38:08+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/segment_tree_rangeaffinerangesum.test.cpp - - DataStructure/test/aizu_dsl_2_h_segment_tree_rangeaddmin.test.cpp - DataStructure/test/aizu_dsl_2_e_segment_tree_rangeadd.test.cpp + - DataStructure/test/segment_tree_rangeaffinerangesum.test.cpp + - DataStructure/test/area_of_union_of_rectangles.test.cpp + - DataStructure/test/aizu_dsl_2_i_segment_tree_rangesetsum.test.cpp + - DataStructure/test/aizu_dsl_2_g_segment_tree_rangeaddsum.test.cpp - DataStructure/test/aizu_grl_5_e_hld_edge.test.cpp + - DataStructure/test/aizu_dsl_2_f_segment_tree_rangesetmin.test.cpp - DataStructure/test/segment_tree_rangeaffinepointget.test.cpp - - DataStructure/test/aizu_dsl_2_g_segment_tree_rangeaddsum.test.cpp - - DataStructure/test/aizu_dsl_2_i_segment_tree_rangesetsum.test.cpp - - DataStructure/test/area_of_union_of_rectangles.test.cpp - DataStructure/test/aizu_dsl_2_d_segment_tree_rangeset.test.cpp - - DataStructure/test/aizu_dsl_2_f_segment_tree_rangesetmin.test.cpp + - DataStructure/test/aizu_dsl_2_h_segment_tree_rangeaddmin.test.cpp documentation_of: DataStructure/LazySegTree.h layout: document redirect_from: diff --git a/DataStructure/LiChaoSegTree.h.md b/DataStructure/LiChaoSegTree.h.md index 379e20f7..95d2e1b2 100644 --- a/DataStructure/LiChaoSegTree.h.md +++ b/DataStructure/LiChaoSegTree.h.md @@ -126,8 +126,8 @@ data: timestamp: '2022-01-03 02:31:11+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/li_chao_seg_tree_lineaddgetmin.test.cpp - DataStructure/test/li_chao_seg_tree_segaddgetmin.test.cpp + - DataStructure/test/li_chao_seg_tree_lineaddgetmin.test.cpp documentation_of: DataStructure/LiChaoSegTree.h layout: document redirect_from: diff --git a/DataStructure/RMQ.h.md b/DataStructure/RMQ.h.md index 89126eb3..a093979a 100644 --- a/DataStructure/RMQ.h.md +++ b/DataStructure/RMQ.h.md @@ -70,9 +70,9 @@ data: - String/tests/suffix_array_queries.test.cpp - String/tests/lcp.test.cpp - String/tests/suffix_array.test.cpp + - DataStructure/test/aizu_grl_5_c_lca.test.cpp - DataStructure/test/rmq.test.cpp - DataStructure/test/lca.test.cpp - - DataStructure/test/aizu_grl_5_c_lca.test.cpp documentation_of: DataStructure/RMQ.h layout: document redirect_from: diff --git a/DataStructure/RangeSet.h.md b/DataStructure/RangeSet.h.md index eec5696e..05087062 100644 --- a/DataStructure/RangeSet.h.md +++ b/DataStructure/RangeSet.h.md @@ -99,9 +99,9 @@ data: timestamp: '2022-12-31 08:30:35+00:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/yukicoder_674_range_set.test.cpp - DataStructure/test/aizu_dsl_4_a_range_set.test.cpp - DataStructure/test/aizu_dsl_2_d_rangeset.test.cpp + - DataStructure/test/yukicoder_674_range_set.test.cpp documentation_of: DataStructure/RangeSet.h layout: document redirect_from: diff --git a/DataStructure/SegTree.h.md b/DataStructure/SegTree.h.md index c979852d..9b5913fa 100644 --- a/DataStructure/SegTree.h.md +++ b/DataStructure/SegTree.h.md @@ -185,16 +185,16 @@ data: timestamp: '2022-12-21 14:26:45+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/segment_tree_2d_pointaddrectsum.test.cpp - DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp - - DataStructure/test/aizu_dsl_2_a_segment_tree_rmq_update.test.cpp - - DataStructure/test/aizu_dsl_2_b_segment_tree_sum.test.cpp - - DataStructure/test/hld_vertexaddpathsum.test.cpp - DataStructure/test/segment_tree_pointsetrangecomposite.test.cpp - - DataStructure/test/hld_vertexaddsubtreesum.test.cpp - DataStructure/test/hld_vertexsetpathcomposite.test.cpp - - DataStructure/test/segment_tree_pointaddrangesum.test.cpp + - DataStructure/test/aizu_dsl_2_a_segment_tree_rmq_update.test.cpp + - DataStructure/test/segment_tree_2d_pointaddrectsum.test.cpp - DataStructure/test/segment_tree_staticrmq.test.cpp + - DataStructure/test/segment_tree_pointaddrangesum.test.cpp + - DataStructure/test/hld_vertexaddpathsum.test.cpp + - DataStructure/test/hld_vertexaddsubtreesum.test.cpp + - DataStructure/test/aizu_dsl_2_b_segment_tree_sum.test.cpp documentation_of: DataStructure/SegTree.h layout: document redirect_from: diff --git a/DataStructure/test/aizu_dsl_1_b_dsu_weighted.test.cpp.md b/DataStructure/test/aizu_dsl_1_b_dsu_weighted.test.cpp.md index 60c265f7..24e4399f 100644 --- a/DataStructure/test/aizu_dsl_1_b_dsu_weighted.test.cpp.md +++ b/DataStructure/test/aizu_dsl_1_b_dsu_weighted.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/DSU/DSU_weighted.h title: DataStructure/DSU/DSU_weighted.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_a_segment_tree_rmq_update.test.cpp.md b/DataStructure/test/aizu_dsl_2_a_segment_tree_rmq_update.test.cpp.md index e143c7a8..5ec23c87 100644 --- a/DataStructure/test/aizu_dsl_2_a_segment_tree_rmq_update.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_a_segment_tree_rmq_update.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/SegTree.h title: DataStructure/SegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_b_segment_tree_sum.test.cpp.md b/DataStructure/test/aizu_dsl_2_b_segment_tree_sum.test.cpp.md index 443971cb..f73d6ec8 100644 --- a/DataStructure/test/aizu_dsl_2_b_segment_tree_sum.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_b_segment_tree_sum.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/SegTree.h title: DataStructure/SegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_d_rangeset.test.cpp.md b/DataStructure/test/aizu_dsl_2_d_rangeset.test.cpp.md index 0694c8d6..43b8f1be 100644 --- a/DataStructure/test/aizu_dsl_2_d_rangeset.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_d_rangeset.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/RangeSet.h title: DataStructure/RangeSet.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_d_segment_tree_rangeset.test.cpp.md b/DataStructure/test/aizu_dsl_2_d_segment_tree_rangeset.test.cpp.md index fd76a420..12133f51 100644 --- a/DataStructure/test/aizu_dsl_2_d_segment_tree_rangeset.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_d_segment_tree_rangeset.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/LazySegTree.h title: DataStructure/LazySegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_e_segment_tree_rangeadd.test.cpp.md b/DataStructure/test/aizu_dsl_2_e_segment_tree_rangeadd.test.cpp.md index 9bb9c817..1a2049e4 100644 --- a/DataStructure/test/aizu_dsl_2_e_segment_tree_rangeadd.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_e_segment_tree_rangeadd.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/LazySegTree.h title: DataStructure/LazySegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_f_segment_tree_rangesetmin.test.cpp.md b/DataStructure/test/aizu_dsl_2_f_segment_tree_rangesetmin.test.cpp.md index 83519534..76049dad 100644 --- a/DataStructure/test/aizu_dsl_2_f_segment_tree_rangesetmin.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_f_segment_tree_rangesetmin.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/LazySegTree.h title: DataStructure/LazySegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_g_segment_tree_rangeaddsum.test.cpp.md b/DataStructure/test/aizu_dsl_2_g_segment_tree_rangeaddsum.test.cpp.md index 796267fe..e070b0eb 100644 --- a/DataStructure/test/aizu_dsl_2_g_segment_tree_rangeaddsum.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_g_segment_tree_rangeaddsum.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/LazySegTree.h title: DataStructure/LazySegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_h_segment_tree_rangeaddmin.test.cpp.md b/DataStructure/test/aizu_dsl_2_h_segment_tree_rangeaddmin.test.cpp.md index 674ed14e..f923f265 100644 --- a/DataStructure/test/aizu_dsl_2_h_segment_tree_rangeaddmin.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_h_segment_tree_rangeaddmin.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/LazySegTree.h title: DataStructure/LazySegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_2_i_segment_tree_rangesetsum.test.cpp.md b/DataStructure/test/aizu_dsl_2_i_segment_tree_rangesetsum.test.cpp.md index e714c024..0b19599c 100644 --- a/DataStructure/test/aizu_dsl_2_i_segment_tree_rangesetsum.test.cpp.md +++ b/DataStructure/test/aizu_dsl_2_i_segment_tree_rangesetsum.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/LazySegTree.h title: DataStructure/LazySegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_dsl_4_a_range_set.test.cpp.md b/DataStructure/test/aizu_dsl_4_a_range_set.test.cpp.md index ea765ac6..181d1bf6 100644 --- a/DataStructure/test/aizu_dsl_4_a_range_set.test.cpp.md +++ b/DataStructure/test/aizu_dsl_4_a_range_set.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/RangeSet.h title: DataStructure/RangeSet.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_grl_5_c_hld_lca.test.cpp.md b/DataStructure/test/aizu_grl_5_c_hld_lca.test.cpp.md index 57a7ef1b..0e83d35f 100644 --- a/DataStructure/test/aizu_grl_5_c_hld_lca.test.cpp.md +++ b/DataStructure/test/aizu_grl_5_c_hld_lca.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/HeavyLight_adamant.h title: DataStructure/HeavyLight_adamant.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_grl_5_c_lca.test.cpp.md b/DataStructure/test/aizu_grl_5_c_lca.test.cpp.md index 262e5bb2..34f29481 100644 --- a/DataStructure/test/aizu_grl_5_c_lca.test.cpp.md +++ b/DataStructure/test/aizu_grl_5_c_lca.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/RMQ.h title: DataStructure/RMQ.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp.md b/DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp.md index 29f20419..6e16c55c 100644 --- a/DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp.md +++ b/DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/SegTree.h title: DataStructure/SegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/aizu_grl_5_e_hld_edge.test.cpp.md b/DataStructure/test/aizu_grl_5_e_hld_edge.test.cpp.md index 0bbeef18..79dcb614 100644 --- a/DataStructure/test/aizu_grl_5_e_hld_edge.test.cpp.md +++ b/DataStructure/test/aizu_grl_5_e_hld_edge.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/LazySegTree.h title: DataStructure/LazySegTree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/binary_trie.test.cpp.md b/DataStructure/test/binary_trie.test.cpp.md index 1c3bccf1..a52f9fa6 100644 --- a/DataStructure/test/binary_trie.test.cpp.md +++ b/DataStructure/test/binary_trie.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/BinaryTrie.h title: DataStructure/BinaryTrie.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/mo_algorithm.test.cpp.md b/DataStructure/test/mo_algorithm.test.cpp.md index 04764c83..23d1a657 100644 --- a/DataStructure/test/mo_algorithm.test.cpp.md +++ b/DataStructure/test/mo_algorithm.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/Mo/MoAlgorithm.h title: DataStructure/Mo/MoAlgorithm.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/mo_algorithm_with_undo.test.cpp.md b/DataStructure/test/mo_algorithm_with_undo.test.cpp.md index ba930b1c..55c0caf8 100644 --- a/DataStructure/test/mo_algorithm_with_undo.test.cpp.md +++ b/DataStructure/test/mo_algorithm_with_undo.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/Mo/MoAlgorithmWithUndo.h title: DataStructure/Mo/MoAlgorithmWithUndo.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/persistent_fenwick_tree_rmq.test.cpp.md b/DataStructure/test/persistent_fenwick_tree_rmq.test.cpp.md index 9a343a38..a9c28307 100644 --- a/DataStructure/test/persistent_fenwick_tree_rmq.test.cpp.md +++ b/DataStructure/test/persistent_fenwick_tree_rmq.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/Fenwick/PartiallyPersistentFenwick.h title: DataStructure/Fenwick/PartiallyPersistentFenwick.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/segment_tree_rangeaffinepointget.test.cpp.md b/DataStructure/test/segment_tree_rangeaffinepointget.test.cpp.md index f0c865e3..0401c049 100644 --- a/DataStructure/test/segment_tree_rangeaffinepointget.test.cpp.md +++ b/DataStructure/test/segment_tree_rangeaffinepointget.test.cpp.md @@ -10,7 +10,7 @@ data: - icon: ':heavy_check_mark:' path: buffered_reader.h title: buffered_reader.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/yosupo_rangereversesum_splay.test.cpp.md b/DataStructure/test/yosupo_rangereversesum_splay.test.cpp.md index 2ebd2683..98628ac1 100644 --- a/DataStructure/test/yosupo_rangereversesum_splay.test.cpp.md +++ b/DataStructure/test/yosupo_rangereversesum_splay.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/splay_tree.h title: DataStructure/splay_tree.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/DataStructure/test/yukicoder_674_range_set.test.cpp.md b/DataStructure/test/yukicoder_674_range_set.test.cpp.md index 14004289..7b7aa03a 100644 --- a/DataStructure/test/yukicoder_674_range_set.test.cpp.md +++ b/DataStructure/test/yukicoder_674_range_set.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: DataStructure/RangeSet.h title: DataStructure/RangeSet.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Geometry/basic.h.md b/Geometry/basic.h.md index ad385fb6..42f84b20 100644 --- a/Geometry/basic.h.md +++ b/Geometry/basic.h.md @@ -66,6 +66,9 @@ data: - icon: ':heavy_check_mark:' path: Geometry/tests/polygon_in_convex.test.cpp title: Geometry/tests/polygon_in_convex.test.cpp + - icon: ':x:' + path: Geometry/tests/yosupo_convex_hull.test.cpp + title: Geometry/tests/yosupo_convex_hull.test.cpp - icon: ':heavy_check_mark:' path: Geometry/tests/z_basic_ccw.test.cpp title: Geometry/tests/z_basic_ccw.test.cpp @@ -81,9 +84,9 @@ data: - icon: ':heavy_check_mark:' path: Geometry/tests/z_polygon_is_convex.test.cpp title: Geometry/tests/z_polygon_is_convex.test.cpp - _isVerificationFailed: false + _isVerificationFailed: true _pathExtension: h - _verificationStatusIcon: ':heavy_check_mark:' + _verificationStatusIcon: ':question:' attributes: links: - https://cses.fi/problemset/task/2190/ @@ -142,7 +145,7 @@ data: \ - A.y;\n b = A.x - B.x;\n c = - (a * A.x + b * A.y);\n }\n\ \ Line(Point P, double m) {\n a = -m; b = 1;\n c = -((a * P.x)\ \ + (b * P.y));\n }\n double f(Point p) {\n return a*p.x + b*p.y\ - \ + c;\n }\n};\nostream& operator >> (ostream& cout, const Line& l) {\n \ + \ + c;\n }\n};\nostream& operator << (ostream& cout, const Line& l) {\n \ \ cout << l.a << \"*x + \" << l.b << \"*y + \" << l.c;\n return cout;\n}\n\n\ bool areParallel(Line l1, Line l2) {\n return cmp(l1.a*l2.b, l1.b*l2.a) ==\ \ 0;\n}\n\nbool areSame(Line l1, Line l2) {\n return areParallel(l1 ,l2) &&\ @@ -220,7 +223,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -248,35 +251,36 @@ data: isVerificationFile: false path: Geometry/basic.h requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' - verificationStatus: LIBRARY_ALL_AC + timestamp: '2022-07-20 01:28:51+08:00' + verificationStatus: LIBRARY_SOME_WA verifiedWith: + - Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp + - Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp + - Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp + - Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp + - Geometry/tests/z_polygon_is_convex.test.cpp + - Geometry/tests/z_basic_segment_intersect.test.cpp + - Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp + - Geometry/tests/yosupo_convex_hull.test.cpp + - Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp + - Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp + - Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp + - Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp - Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp + - Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp + - Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp - Geometry/tests/z_polygon_convexhull.test.cpp + - Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp + - Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp - Geometry/tests/aizu_cgl_5_a_closest_pair.test.cpp - - Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp - - Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp - Geometry/tests/aizu_cgl_2_d_basic_segment_distance.test.cpp - - Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp - - Geometry/tests/z_polygon_area.test.cpp - - Geometry/tests/z_basic_ccw.test.cpp - - Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp - - Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp - - Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp - Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp - - Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp - - Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp + - Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp - Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp - - Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp - - Geometry/tests/z_polygon_is_convex.test.cpp - - Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp - - Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp - - Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp - - Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp - Geometry/tests/polygon_in_convex.test.cpp - - Geometry/tests/z_basic_segment_intersect.test.cpp - - Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp - - Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp + - Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp + - Geometry/tests/z_polygon_area.test.cpp + - Geometry/tests/z_basic_ccw.test.cpp documentation_of: Geometry/basic.h layout: document redirect_from: diff --git a/Geometry/circle.h.md b/Geometry/circle.h.md index 04eb7e61..4b31208a 100644 --- a/Geometry/circle.h.md +++ b/Geometry/circle.h.md @@ -152,12 +152,12 @@ data: timestamp: '2022-01-11 12:26:06+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp + - Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp - Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp - - Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp - Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp + - Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp - Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp - - Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp + - Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp documentation_of: Geometry/circle.h layout: document redirect_from: diff --git a/Geometry/polygon.h.md b/Geometry/polygon.h.md index c4f61526..07267ec9 100644 --- a/Geometry/polygon.h.md +++ b/Geometry/polygon.h.md @@ -24,6 +24,9 @@ data: - icon: ':heavy_check_mark:' path: Geometry/tests/polygon_in_convex.test.cpp title: Geometry/tests/polygon_in_convex.test.cpp + - icon: ':x:' + path: Geometry/tests/yosupo_convex_hull.test.cpp + title: Geometry/tests/yosupo_convex_hull.test.cpp - icon: ':heavy_check_mark:' path: Geometry/tests/z_polygon_area.test.cpp title: Geometry/tests/z_polygon_area.test.cpp @@ -33,9 +36,9 @@ data: - icon: ':heavy_check_mark:' path: Geometry/tests/z_polygon_is_convex.test.cpp title: Geometry/tests/z_polygon_is_convex.test.cpp - _isVerificationFailed: false + _isVerificationFailed: true _pathExtension: h - _verificationStatusIcon: ':heavy_check_mark:' + _verificationStatusIcon: ':question:' attributes: links: - https://cses.fi/problemset/task/2195 @@ -257,18 +260,19 @@ data: path: Geometry/polygon.h requiredBy: [] timestamp: '2023-02-02 12:34:59+08:00' - verificationStatus: LIBRARY_ALL_AC + verificationStatus: LIBRARY_SOME_WA verifiedWith: - - Geometry/tests/z_polygon_convexhull.test.cpp - - Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp - Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp - - Geometry/tests/z_polygon_area.test.cpp - Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp - - Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp - - Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp - Geometry/tests/z_polygon_is_convex.test.cpp + - Geometry/tests/yosupo_convex_hull.test.cpp + - Geometry/tests/z_polygon_convexhull.test.cpp - Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp + - Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp + - Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp - Geometry/tests/polygon_in_convex.test.cpp + - Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp + - Geometry/tests/z_polygon_area.test.cpp documentation_of: Geometry/polygon.h layout: document redirect_from: diff --git a/Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp.md b/Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp.md index 72990b11..31ea3906 100644 --- a/Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp.md +++ b/Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -99,7 +99,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -140,7 +140,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp diff --git a/Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp.md b/Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp.md index a1a1a60e..eb47c92b 100644 --- a/Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp.md +++ b/Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -100,7 +100,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -143,7 +143,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp diff --git a/Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp.md b/Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp.md index a2031135..49f51ff0 100644 --- a/Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp.md +++ b/Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -99,7 +99,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -144,7 +144,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp diff --git a/Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp.md b/Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp.md index 220c2972..78079740 100644 --- a/Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp.md +++ b/Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -99,7 +99,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -144,7 +144,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp diff --git a/Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp.md b/Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp.md index d08aa378..01d29511 100644 --- a/Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp.md +++ b/Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -99,7 +99,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -138,7 +138,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp diff --git a/Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp.md b/Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp.md index 700acef1..391cf6cc 100644 --- a/Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp.md +++ b/Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -99,7 +99,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -146,7 +146,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp diff --git a/Geometry/tests/aizu_cgl_2_d_basic_segment_distance.test.cpp.md b/Geometry/tests/aizu_cgl_2_d_basic_segment_distance.test.cpp.md index 0df66d8b..c557fe10 100644 --- a/Geometry/tests/aizu_cgl_2_d_basic_segment_distance.test.cpp.md +++ b/Geometry/tests/aizu_cgl_2_d_basic_segment_distance.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -99,7 +99,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -146,7 +146,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_2_d_basic_segment_distance.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_2_d_basic_segment_distance.test.cpp diff --git a/Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp.md b/Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp.md index a39d99e9..290ddefb 100644 --- a/Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp.md +++ b/Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -246,7 +246,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp diff --git a/Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp.md b/Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp.md index e595e051..60f5b78d 100644 --- a/Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp.md +++ b/Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -245,7 +245,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp diff --git a/Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp.md b/Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp.md index fde4e98a..fdcd0ca4 100644 --- a/Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp.md +++ b/Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -248,7 +248,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp diff --git a/Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp.md b/Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp.md index 404e70b4..588066c0 100644 --- a/Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp.md +++ b/Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -249,7 +249,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp diff --git a/Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp.md b/Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp.md index 83cf7801..5e44098b 100644 --- a/Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp.md +++ b/Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -103,7 +103,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -248,7 +248,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp diff --git a/Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp.md b/Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp.md index f4222d8f..76206e8e 100644 --- a/Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp.md +++ b/Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -103,7 +103,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -250,7 +250,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp diff --git a/Geometry/tests/aizu_cgl_5_a_closest_pair.test.cpp.md b/Geometry/tests/aizu_cgl_5_a_closest_pair.test.cpp.md index b758d6b1..406538d5 100644 --- a/Geometry/tests/aizu_cgl_5_a_closest_pair.test.cpp.md +++ b/Geometry/tests/aizu_cgl_5_a_closest_pair.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - icon: ':heavy_check_mark:' path: Geometry/closest_pair.h title: Geometry/closest_pair.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -103,7 +103,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -166,7 +166,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_5_a_closest_pair.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_5_a_closest_pair.test.cpp diff --git a/Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp.md b/Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp.md index d080d866..66fccc4c 100644 --- a/Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp.md +++ b/Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - icon: ':heavy_check_mark:' path: Geometry/circle.h title: Geometry/circle.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -197,7 +197,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp diff --git a/Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp.md b/Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp.md index 73c3a729..d124c296 100644 --- a/Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp.md +++ b/Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - icon: ':heavy_check_mark:' path: Geometry/circle.h title: Geometry/circle.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -104,7 +104,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -206,7 +206,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp diff --git a/Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp.md b/Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp.md index 881d3312..c3d039a8 100644 --- a/Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp.md +++ b/Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - icon: ':heavy_check_mark:' path: Geometry/circle.h title: Geometry/circle.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -103,7 +103,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -204,7 +204,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp diff --git a/Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp.md b/Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp.md index e538cc9e..45f61ee5 100644 --- a/Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp.md +++ b/Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - icon: ':heavy_check_mark:' path: Geometry/circle.h title: Geometry/circle.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -104,7 +104,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -212,7 +212,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp diff --git a/Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp.md b/Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp.md index ca32311f..1edd36e4 100644 --- a/Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp.md +++ b/Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - icon: ':heavy_check_mark:' path: Geometry/circle.h title: Geometry/circle.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -104,7 +104,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -208,7 +208,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp diff --git a/Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp.md b/Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp.md index 45f6a943..d6a78859 100644 --- a/Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp.md +++ b/Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - icon: ':heavy_check_mark:' path: Geometry/circle.h title: Geometry/circle.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -103,7 +103,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -199,7 +199,7 @@ data: isVerificationFile: true path: Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp diff --git a/Geometry/tests/polygon_in_convex.test.cpp.md b/Geometry/tests/polygon_in_convex.test.cpp.md index 2698aa77..ac3dfcce 100644 --- a/Geometry/tests/polygon_in_convex.test.cpp.md +++ b/Geometry/tests/polygon_in_convex.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -248,7 +248,7 @@ data: isVerificationFile: true path: Geometry/tests/polygon_in_convex.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/polygon_in_convex.test.cpp diff --git a/Geometry/tests/yosupo_convex_hull.test.cpp.md b/Geometry/tests/yosupo_convex_hull.test.cpp.md new file mode 100644 index 00000000..e17cfe8e --- /dev/null +++ b/Geometry/tests/yosupo_convex_hull.test.cpp.md @@ -0,0 +1,261 @@ +--- +data: + _extendedDependsOn: + - icon: ':question:' + path: Geometry/basic.h + title: Geometry/basic.h + - icon: ':question:' + path: Geometry/polygon.h + title: Geometry/polygon.h + - icon: ':question:' + path: template.h + title: template.h + _extendedRequiredBy: [] + _extendedVerifiedWith: [] + _isVerificationFailed: true + _pathExtension: cpp + _verificationStatusIcon: ':x:' + attributes: + '*NOT_SPECIAL_COMMENTS*': '' + PROBLEM: https://judge.yosupo.jp/problem/static_convex_hull + links: + - https://judge.yosupo.jp/problem/static_convex_hull + bundledCode: "#line 1 \"Geometry/tests/yosupo_convex_hull.test.cpp\"\n#define PROBLEM\ + \ \"https://judge.yosupo.jp/problem/static_convex_hull\"\n\n#line 1 \"template.h\"\ + \n#include \nusing namespace std;\n\n#define FOR(i,a,b) for(int\ + \ i=(a),_b=(b); i<=_b; i++)\n#define FORD(i,a,b) for(int i=(a),_b=(b); i>=_b;\ + \ i--)\n#define REP(i,a) for(int i=0,_a=(a); i<_a; i++)\n#define EACH(it,a) for(__typeof(a.begin())\ + \ it = a.begin(); it != a.end(); ++it)\n\n#define DEBUG(x) { cout << #x << \"\ + \ = \"; cout << (x) << endl; }\n#define PR(a,n) { cout << #a << \" = \"; FOR(_,1,n)\ + \ cout << a[_] << ' '; cout << endl; }\n#define PR0(a,n) { cout << #a << \" =\ + \ \"; REP(_,n) cout << a[_] << ' '; cout << endl; }\n\n#define sqr(x) ((x) * (x))\n\ + \n// For printing pair, container, etc.\n// Copied from https://quangloc99.github.io/2021/07/30/my-CP-debugging-template.html\n\ + template ostream& operator << (ostream& out, const pair&\ + \ p) {\n return out << '(' << p.first << \", \" << p.second << ')';\n}\n\n\ + template()))>\ntypename enable_if::value, ostream&>::type\noperator << (ostream& out, const Con& con)\ + \ {\n out << '{';\n for (auto beg = con.begin(), it = beg; it != con.end();\ + \ it++) {\n out << (it == beg ? \"\" : \", \") << *it;\n }\n return\ + \ out << '}';\n}\ntemplate ostream& print_tuple_utils(ostream&\ + \ out, const T& tup) {\n if constexpr(i == tuple_size::value) return out\ + \ << \")\"; \n else return print_tuple_utils(out << (i ? \", \" :\ + \ \"(\") << get(tup), tup); \n}\ntemplate ostream& operator <<\ + \ (ostream& out, const tuple& t) {\n return print_tuple_utils<0, tuple>(out,\ + \ t);\n}\n\nmt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());\n\ + long long get_rand(long long r) {\n return uniform_int_distribution\ + \ (0, r-1)(rng);\n}\n\ntemplate\nvector read_vector(int n) {\n\ + \ vector res(n);\n for (int& x : res) cin >> x;\n return res;\n}\n\ + \nvoid solve();\n\nint main() {\n ios::sync_with_stdio(0); cin.tie(0);\n \ + \ solve();\n return 0;\n}\n#line 2 \"Geometry/basic.h\"\n\n// Basic geometry\ + \ objects: Point, Line, Segment\n// Works with both integers and floating points\n\ + // Unless the problem has precision issue, can use Point, which uses double\n\ + // and has more functionalities.\n// For integers, can use P\n\n#ifndef\ + \ EPS // allow test files to overwrite EPS\n#define EPS 1e-6\n#endif\n\nconst\ + \ double PI = acos(-1.0l);\n\ndouble DEG_to_RAD(double d) { return d * PI / 180.0;\ + \ }\ndouble RAD_to_DEG(double r) { return r * 180.0 / PI; }\n\ninline int cmp(double\ + \ a, double b) {\n return (a < b - EPS) ? -1 : ((a > b + EPS) ? 1 : 0);\n}\n\ + \n// for int types\ntemplate::value>::type\ + \ * = nullptr>\ninline int cmp(T a, T b) {\n return (a == b) ? 0 : (a < b)\ + \ ? -1 : 1;\n}\n\ntemplate\nstruct P {\n T x, y;\n P() { x =\ + \ y = T(0); }\n P(T _x, T _y) : x(_x), y(_y) {}\n\n P operator + (const\ + \ P& a) const { return P(x+a.x, y+a.y); }\n P operator - (const P& a) const\ + \ { return P(x-a.x, y-a.y); }\n P operator * (T k) const { return P(x*k, y*k);\ + \ }\n P operator / (double k) const { return P(x/k, y/k); }\n\n \ + \ T operator * (const P& a) const { return x*a.x + y*a.y; } // dot product\n \ + \ T operator % (const P& a) const { return x*a.y - y*a.x; } // cross product\n\ + \n int cmp(const P& q) const { if (int t = ::cmp(x,q.x)) return t; return\ + \ ::cmp(y,q.y); }\n\n #define Comp(x) bool operator x (const P& q) const {\ + \ return cmp(q) x 0; }\n Comp(>) Comp(<) Comp(==) Comp(>=) Comp(<=) Comp(!=)\n\ + \ #undef Comp\n\n T norm() { return x*x + y*y; }\n\n // Note: There are\ + \ 2 ways for implementing len():\n // 1. sqrt(norm()) --> fast, but inaccurate\ + \ (produce some values that are of order X^2)\n // 2. hypot(x, y) --> slow,\ + \ but much more accurate\n double len() { return hypot(x, y); }\n\n P\ + \ rotate(double alpha) {\n double cosa = cos(alpha), sina = sin(alpha);\n\ + \ return P(x * cosa - y * sina, x * sina + y * cosa);\n }\n};\nusing\ + \ Point = P;\n\n// Compare points by (y, x)\ntemplate\n\ + bool cmpy(const P& a, const P& b) {\n if (cmp(a.y, b.y)) return a.y <\ + \ b.y;\n return a.x < b.x;\n};\n\ntemplate\nint ccw(P a, P\ + \ b, P c) {\n return cmp((b-a)%(c-a), T(0));\n}\n\nint RE_TRAI = ccw(P(0,\ + \ 0), P(0, 1), P(-1, 1));\nint RE_PHAI = ccw(P(0, 0), P(0,\ + \ 1), P(1, 1));\n\ntemplate\nistream& operator >> (istream& cin,\ + \ P& p) {\n cin >> p.x >> p.y;\n return cin;\n}\ntemplate\n\ + ostream& operator << (ostream& cout, const P& p) {\n cout << p.x << ' '\ + \ << p.y;\n return cout;\n}\n\ndouble angle(Point a, Point o, Point b) { //\ + \ min of directed angle AOB & BOA\n a = a - o; b = b - o;\n return acos((a\ + \ * b) / sqrt(a.norm()) / sqrt(b.norm()));\n}\n\ndouble directed_angle(Point a,\ + \ Point o, Point b) { // angle AOB, in range [0, 2*PI)\n double t = -atan2(a.y\ + \ - o.y, a.x - o.x)\n + atan2(b.y - o.y, b.x - o.x);\n while (t\ + \ < 0) t += 2*PI;\n return t;\n}\n\n// Distance from p to Line ab (closest\ + \ Point --> c)\n// i.e. c is projection of p on AB\ndouble distToLine(Point p,\ + \ Point a, Point b, Point &c) {\n Point ap = p - a, ab = b - a;\n double\ + \ u = (ap * ab) / ab.norm();\n c = a + (ab * u);\n return (p-c).len();\n\ + }\n\n// Distance from p to segment ab (closest Point --> c)\ndouble distToLineSegment(Point\ + \ p, Point a, Point b, Point &c) {\n Point ap = p - a, ab = b - a;\n double\ + \ u = (ap * ab) / ab.norm();\n if (u < 0.0) {\n c = Point(a.x, a.y);\n\ + \ return (p - a).len();\n }\n if (u > 1.0) {\n c = Point(b.x,\ + \ b.y);\n return (p - b).len();\n }\n return distToLine(p, a, b,\ + \ c);\n}\n\n// NOTE: WILL NOT WORK WHEN a = b = 0.\nstruct Line {\n double\ + \ a, b, c; // ax + by + c = 0\n Point A, B; // Added for polygon intersect\ + \ line. Do not rely on assumption that these are valid\n\n Line(double _a,\ + \ double _b, double _c) : a(_a), b(_b), c(_c) {} \n\n Line(Point _A, Point\ + \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ + \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ + \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ + \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ + \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ + \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ + \ return areParallel(l1 ,l2) && cmp(l1.c*l2.a, l2.c*l1.a) == 0\n \ + \ && cmp(l1.c*l2.b, l1.b*l2.c) == 0;\n}\n\nbool areIntersect(Line l1, Line l2,\ + \ Point &p) {\n if (areParallel(l1, l2)) return false;\n double dx = l1.b*l2.c\ + \ - l2.b*l1.c;\n double dy = l1.c*l2.a - l2.c*l1.a;\n double d = l1.a*l2.b\ + \ - l2.a*l1.b;\n p = Point(dx/d, dy/d);\n return true;\n}\n\n// closest\ + \ point from p in line l.\nvoid closestPoint(Line l, Point p, Point &ans) {\n\ + \ if (fabs(l.b) < EPS) {\n ans.x = -(l.c) / l.a; ans.y = p.y;\n \ + \ return;\n }\n if (fabs(l.a) < EPS) {\n ans.x = p.x; ans.y =\ + \ -(l.c) / l.b;\n return;\n }\n Line perp(l.b, -l.a, - (l.b*p.x -\ + \ l.a*p.y));\n areIntersect(l, perp, ans);\n}\n\n// Segment intersect\n// Tested:\n\ + // - https://cses.fi/problemset/task/2190/\n// returns true if p is on segment\ + \ [a, b]\ntemplate\nbool onSegment(const P& a, const P& b, const\ + \ P& p) {\n return ccw(a, b, p) == 0\n && min(a.x, b.x) <= p.x &&\ + \ p.x <= max(a.x, b.x)\n && min(a.y, b.y) <= p.y && p.y <= max(a.y, b.y);\n\ + }\n\n// Returns true if segment [a, b] and [c, d] intersects\n// End point also\ + \ returns true\ntemplate\nbool segmentIntersect(const P& a, const\ + \ P& b, const P& c, const P& d) {\n if (onSegment(a, b, c)\n \ + \ || onSegment(a, b, d)\n || onSegment(c, d, a)\n \ + \ || onSegment(c, d, b)) {\n return true;\n }\n\n return ccw(a, b,\ + \ c) * ccw(a, b, d) < 0\n && ccw(c, d, a) * ccw(c, d, b) < 0;\n}\n#line\ + \ 1 \"Geometry/polygon.h\"\n// Polygon: convex hull, in polygon, convex diameter\ + \ ..\n// Functions with param vector> works with both integers and floating\ + \ points\n// Functions with param Polygon works with floating points only.\n\n\ + typedef vector< Point > Polygon;\n\n// Convex Hull:\n// If minimum point --> #define\ + \ REMOVE_REDUNDANT\n// Known issues:\n// - Max. point does not work when some\ + \ points are the same.\n// Tested:\n// - (min points) https://open.kattis.com/problems/convexhull\n\ + // - (max points) https://cses.fi/problemset/task/2195\n\n// #define REMOVE_REDUNDANT\n\ + template\nT area2(P a, P b, P c) { return a%b + b%c + c%a;\ + \ }\n\ntemplate\nvoid ConvexHull(vector> &pts) {\n sort(pts.begin(),\ + \ pts.end());\n pts.erase(unique(pts.begin(), pts.end()), pts.end());\n \ + \ vector> up, dn;\n for (int i = 0; i < (int) pts.size(); i++) {\n#ifdef\ + \ REMOVE_REDUNDANT\n while (up.size() > 1 && area2(up[up.size()-2], up.back(),\ + \ pts[i]) >= 0) up.pop_back();\n while (dn.size() > 1 && area2(dn[dn.size()-2],\ + \ dn.back(), pts[i]) <= 0) dn.pop_back();\n#else\n while (up.size() > 1\ + \ && area2(up[up.size()-2], up.back(), pts[i]) > 0) up.pop_back();\n while\ + \ (dn.size() > 1 && area2(dn[dn.size()-2], dn.back(), pts[i]) < 0) dn.pop_back();\n\ + #endif\n up.push_back(pts[i]);\n dn.push_back(pts[i]);\n }\n\ + \ pts = dn;\n for (int i = (int) up.size() - 2; i >= 1; i--) pts.push_back(up[i]);\n\ + \ \n#ifdef REMOVE_REDUNDANT\n if (pts.size() <= 2) return;\n dn.clear();\n\ + \ dn.push_back(pts[0]);\n dn.push_back(pts[1]);\n for (int i = 2; i <\ + \ (int) pts.size(); i++) {\n if (onSegment(dn[dn.size()-2], pts[i], dn.back()))\ + \ dn.pop_back();\n dn.push_back(pts[i]);\n }\n if (dn.size() >= 3\ + \ && onSegment(dn.back(), dn[1], dn[0])) {\n dn[0] = dn.back();\n \ + \ dn.pop_back();\n }\n pts = dn;\n#endif\n}\n\n// Area, perimeter, centroid\n\ + template\nT signed_area2(vector> p) {\n T area(0);\n for(int\ + \ i = 0; i < (int) p.size(); i++) {\n area += p[i] % p[(i + 1) % p.size()];\n\ + \ }\n return area;\n}\ndouble area(const Polygon &p) {\n return std::abs(signed_area2(p)\ + \ / 2.0);\n}\nPoint centroid(Polygon p) {\n Point c(0,0);\n double scale\ + \ = 3.0 * signed_area2(p);\n for (int i = 0; i < (int) p.size(); i++){\n \ + \ int j = (i+1) % p.size();\n c = c + (p[i]+p[j])*(p[i].x*p[j].y -\ + \ p[j].x*p[i].y);\n }\n return c / scale;\n}\ndouble perimeter(Polygon p)\ + \ {\n double res = 0;\n for(int i = 0; i < (int) p.size(); ++i) {\n \ + \ int j = (i + 1) % p.size();\n res += (p[i] - p[j]).len();\n }\n\ + \ return res;\n}\n\n// Is convex: checks if polygon is convex.\n// Return true\ + \ for degen points (all vertices are collinear)\ntemplate\nbool is_convex(const\ + \ vector> &P) {\n int sz = (int) P.size();\n int min_ccw = 2, max_ccw\ + \ = -2;\n for (int i = 0; i < sz; i++) {\n int c = ccw(P[i], P[(i+1)\ + \ % sz], P[(i+2) % sz]);\n min_ccw = min(min_ccw, c);\n max_ccw\ + \ = max(max_ccw, c);\n }\n return min_ccw * max_ccw >= 0;\n}\n\n// Inside\ + \ polygon: O(N). Works with any polygon\n// Tested:\n// - https://open.kattis.com/problems/pointinpolygon\n\ + // - https://open.kattis.com/problems/cuttingpolygon\nenum PolygonLocation { OUT,\ + \ ON, IN };\nPolygonLocation in_polygon(const Polygon &p, Point q) {\n if ((int)p.size()\ + \ == 0) return PolygonLocation::OUT;\n\n // Check if point is on edge.\n \ + \ int n = p.size();\n REP(i,n) {\n int j = (i + 1) % n;\n Point\ + \ u = p[i], v = p[j];\n\n if (u > v) swap(u, v);\n\n if (ccw(u,\ + \ v, q) == 0 && u <= q && q <= v) return PolygonLocation::ON;\n }\n\n //\ + \ Check if point is strictly inside.\n int c = 0;\n for (int i = 0; i <\ + \ n; i++) {\n int j = (i + 1) % n;\n if (((p[i].y <= q.y && q.y\ + \ < p[j].y)\n || (p[j].y <= q.y && q.y < p[i].y))\n \ + \ && q.x < p[i].x + (p[j].x - p[i].x) * (q.y - p[i].y) / (double) (p[j].y\ + \ - p[i].y)) {\n c = !c;\n }\n }\n return c ? PolygonLocation::IN\ + \ : PolygonLocation::OUT;\n}\n\n// Check point in convex polygon, O(logN)\n#define\ + \ Det(a,b,c) ((double)(b.x-a.x)*(double)(c.y-a.y)-(double)(b.y-a.y)*(c.x-a.x))\n\ + PolygonLocation in_convex(vector& l, Point p){\n if (l.empty()) return\ + \ PolygonLocation::OUT;\n if (l.size() <= 2) {\n return onSegment(l[0],\ + \ l[1 % l.size()], p) ? PolygonLocation::ON : PolygonLocation::OUT;\n }\n\n\ + \ int a = 1, b = l.size()-1, c;\n if (Det(l[0], l[a], l[b]) > 0) swap(a,b);\n\ + \n if (onSegment(l[0], l[a], p)) return ON;\n if (onSegment(l[0], l[b],\ + \ p)) return ON;\n\n if (Det(l[0], l[a], p) > 0 || Det(l[0], l[b], p) < 0)\ + \ return OUT;\n while(abs(a-b) > 1) {\n c = (a+b)/2;\n if (Det(l[0],\ + \ l[c], p) > 0) b = c; else a = c;\n }\n int t = cmp(Det(l[a], l[b], p),\ + \ 0);\n return (t == 0) ? ON : (t < 0) ? IN : OUT;\n}\n\n\n// Cut a polygon\ + \ with a line. Returns half on left-hand-side.\n// To return the other half, reverse\ + \ the direction of Line l (by negating l.a, l.b)\n// The line must be formed using\ + \ 2 points\nPolygon polygon_cut(const Polygon& P, Line l) {\n Polygon Q;\n\ + \ for(int i = 0; i < (int) P.size(); ++i) {\n Point A = P[i], B = (i\ + \ == ((int) P.size())-1) ? P[0] : P[i+1];\n if (ccw(l.A, l.B, A) != -1)\ + \ Q.push_back(A);\n if (ccw(l.A, l.B, A)*ccw(l.A, l.B, B) < 0) {\n \ + \ Point p; areIntersect(Line(A, B), l, p);\n Q.push_back(p);\n\ + \ }\n }\n return Q;\n}\n\n// Find intersection of 2 convex polygons\n\ + // Helper method\nbool intersect_1pt(Point a, Point b,\n Point c, Point d,\ + \ Point &r) {\n double D = (b - a) % (d - c);\n if (cmp(D, 0) == 0) return\ + \ false;\n double t = ((c - a) % (d - c)) / D;\n double s = -((a - c) %\ + \ (b - a)) / D;\n r = a + (b - a) * t;\n return cmp(t, 0) >= 0 && cmp(t,\ + \ 1) <= 0 && cmp(s, 0) >= 0 && cmp(s, 1) <= 0;\n}\nPolygon convex_intersect(Polygon\ + \ P, Polygon Q) {\n const int n = P.size(), m = Q.size();\n int a = 0, b\ + \ = 0, aa = 0, ba = 0;\n enum { Pin, Qin, Unknown } in = Unknown;\n Polygon\ + \ R;\n do {\n int a1 = (a+n-1) % n, b1 = (b+m-1) % m;\n double\ + \ C = (P[a] - P[a1]) % (Q[b] - Q[b1]);\n double A = (P[a1] - Q[b]) % (P[a]\ + \ - Q[b]);\n double B = (Q[b1] - P[a]) % (Q[b] - P[a]);\n Point\ + \ r;\n if (intersect_1pt(P[a1], P[a], Q[b1], Q[b], r)) {\n if\ + \ (in == Unknown) aa = ba = 0;\n R.push_back( r );\n in\ + \ = B > 0 ? Pin : A > 0 ? Qin : in;\n }\n if (C == 0 && B == 0 &&\ + \ A == 0) {\n if (in == Pin) { b = (b + 1) % m; ++ba; }\n \ + \ else { a = (a + 1) % m; ++aa; }\n } else if (C >= 0) {\n\ + \ if (A > 0) { if (in == Pin) R.push_back(P[a]); a = (a+1)%n; ++aa;\ + \ }\n else { if (in == Qin) R.push_back(Q[b]); b = (b+1)%m; ++ba;\ + \ }\n } else {\n if (B > 0) { if (in == Qin) R.push_back(Q[b]);\ + \ b = (b+1)%m; ++ba; }\n else { if (in == Pin) R.push_back(P[a]);\ + \ a = (a+1)%n; ++aa; }\n }\n } while ( (aa < n || ba < m) && aa < 2*n\ + \ && ba < 2*m );\n if (in == Unknown) {\n if (in_convex(Q, P[0])) return\ + \ P;\n if (in_convex(P, Q[0])) return Q;\n }\n return R;\n}\n\n//\ + \ Find the diameter of polygon.\n// Returns:\n// >\n\ + pair> convex_diameter(const Polygon &p) {\n const int\ + \ n = p.size();\n int is = 0, js = 0;\n for (int i = 1; i < n; ++i) {\n\ + \ if (p[i].y > p[is].y) is = i;\n if (p[i].y < p[js].y) js = i;\n\ + \ }\n double maxd = (p[is]-p[js]).len();\n int i, maxi, j, maxj;\n \ + \ i = maxi = is;\n j = maxj = js;\n do {\n int ii = (i+1) % n, jj\ + \ = (j+1) % n;\n if ((p[ii] - p[i]) % (p[jj] - p[j]) >= 0) j = jj;\n \ + \ else i = ii;\n if ((p[i] - p[j]).len() > maxd) {\n maxd\ + \ = (p[i] - p[j]).len();\n maxi = i;\n maxj = j;\n \ + \ }\n } while (i != is || j != js);\n return {maxd, std::minmax(maxi,\ + \ maxj)}; /* farthest pair is (maxi, maxj). */\n}\n\n// Pick theorem\n// Given\ + \ non-intersecting polygon.\n// S = area\n// I = number of integer points strictly\ + \ Inside\n// B = number of points on sides of polygon\n// S = I + B/2 - 1\n#line\ + \ 6 \"Geometry/tests/yosupo_convex_hull.test.cpp\"\n\nvoid solve() {\n int\ + \ ntest; cin >> ntest;\n while (ntest--) {\n int n; cin >> n;\n \ + \ vector> ps(n);\n for (int i = 0; i < n; ++i) cin >> ps[i];\n\ + \n ConvexHull(ps);\n cout << ps.size() << '\\n';\n for (const\ + \ auto& p : ps) cout << p.x << ' ' << p.y << '\\n';\n }\n}\n" + code: "#define PROBLEM \"https://judge.yosupo.jp/problem/static_convex_hull\"\n\n\ + #include \"../../template.h\"\n#include \"../basic.h\"\n#include \"../polygon.h\"\ + \n\nvoid solve() {\n int ntest; cin >> ntest;\n while (ntest--) {\n \ + \ int n; cin >> n;\n vector> ps(n);\n for (int i = 0;\ + \ i < n; ++i) cin >> ps[i];\n\n ConvexHull(ps);\n cout << ps.size()\ + \ << '\\n';\n for (const auto& p : ps) cout << p.x << ' ' << p.y << '\\\ + n';\n }\n}\n" + dependsOn: + - template.h + - Geometry/basic.h + - Geometry/polygon.h + isVerificationFile: true + path: Geometry/tests/yosupo_convex_hull.test.cpp + requiredBy: [] + timestamp: '2024-06-02 18:23:02+08:00' + verificationStatus: TEST_WRONG_ANSWER + verifiedWith: [] +documentation_of: Geometry/tests/yosupo_convex_hull.test.cpp +layout: document +redirect_from: +- /verify/Geometry/tests/yosupo_convex_hull.test.cpp +- /verify/Geometry/tests/yosupo_convex_hull.test.cpp.html +title: Geometry/tests/yosupo_convex_hull.test.cpp +--- diff --git a/Geometry/tests/z_basic_ccw.test.cpp.md b/Geometry/tests/z_basic_ccw.test.cpp.md index b022990b..5a5dc525 100644 --- a/Geometry/tests/z_basic_ccw.test.cpp.md +++ b/Geometry/tests/z_basic_ccw.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -99,7 +99,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -145,7 +145,7 @@ data: isVerificationFile: true path: Geometry/tests/z_basic_ccw.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/z_basic_ccw.test.cpp diff --git a/Geometry/tests/z_basic_segment_intersect.test.cpp.md b/Geometry/tests/z_basic_segment_intersect.test.cpp.md index b6d0fbc7..1eda2317 100644 --- a/Geometry/tests/z_basic_segment_intersect.test.cpp.md +++ b/Geometry/tests/z_basic_segment_intersect.test.cpp.md @@ -1,10 +1,10 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -99,7 +99,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -138,7 +138,7 @@ data: isVerificationFile: true path: Geometry/tests/z_basic_segment_intersect.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/z_basic_segment_intersect.test.cpp diff --git a/Geometry/tests/z_polygon_area.test.cpp.md b/Geometry/tests/z_polygon_area.test.cpp.md index 0ad32e98..52d4a99b 100644 --- a/Geometry/tests/z_polygon_area.test.cpp.md +++ b/Geometry/tests/z_polygon_area.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -247,7 +247,7 @@ data: isVerificationFile: true path: Geometry/tests/z_polygon_area.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/z_polygon_area.test.cpp diff --git a/Geometry/tests/z_polygon_convexhull.test.cpp.md b/Geometry/tests/z_polygon_convexhull.test.cpp.md index d644cb7b..667dd6a8 100644 --- a/Geometry/tests/z_polygon_convexhull.test.cpp.md +++ b/Geometry/tests/z_polygon_convexhull.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -249,7 +249,7 @@ data: isVerificationFile: true path: Geometry/tests/z_polygon_convexhull.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/z_polygon_convexhull.test.cpp diff --git a/Geometry/tests/z_polygon_is_convex.test.cpp.md b/Geometry/tests/z_polygon_is_convex.test.cpp.md index 07da53ff..dca39243 100644 --- a/Geometry/tests/z_polygon_is_convex.test.cpp.md +++ b/Geometry/tests/z_polygon_is_convex.test.cpp.md @@ -1,13 +1,13 @@ --- data: _extendedDependsOn: - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -102,7 +102,7 @@ data: \ _B) : A(_A), B(_B) {\n a = B.y - A.y;\n b = A.x - B.x;\n \ \ c = - (a * A.x + b * A.y);\n }\n Line(Point P, double m) {\n \ \ a = -m; b = 1;\n c = -((a * P.x) + (b * P.y));\n }\n double f(Point\ - \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator >> (ostream&\ + \ p) {\n return a*p.x + b*p.y + c;\n }\n};\nostream& operator << (ostream&\ \ cout, const Line& l) {\n cout << l.a << \"*x + \" << l.b << \"*y + \" <<\ \ l.c;\n return cout;\n}\n\nbool areParallel(Line l1, Line l2) {\n return\ \ cmp(l1.a*l2.b, l1.b*l2.a) == 0;\n}\n\nbool areSame(Line l1, Line l2) {\n \ @@ -245,7 +245,7 @@ data: isVerificationFile: true path: Geometry/tests/z_polygon_is_convex.test.cpp requiredBy: [] - timestamp: '2024-03-17 10:45:43+08:00' + timestamp: '2022-07-20 01:28:51+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Geometry/tests/z_polygon_is_convex.test.cpp diff --git a/Graph/2sat.h.md b/Graph/2sat.h.md index beb512f8..237184bc 100644 --- a/Graph/2sat.h.md +++ b/Graph/2sat.h.md @@ -31,43 +31,43 @@ data: \n// Index from 0\n// Usage:\n// DirectedDfs tree;\n// Now you can use tree.scc\n\ //\n// Note: reverse(tree.scc) is topo sorted\n//\n// Tested:\n// - (requires\ \ scc to be topo sorted) https://judge.yosupo.jp/problem/scc\n// - https://cses.fi/problemset/task/1686/\n\ - struct DirectedDfs {\n vector> g;\n int n;\n vector\ - \ num, low, current, S;\n int counter;\n vector comp_ids;\n vector<\ - \ vector > scc;\n\n DirectedDfs(const vector>& _g) : g(_g),\ - \ n(g.size()),\n num(n, -1), low(n, 0), current(n, 0), counter(0),\ - \ comp_ids(n, -1) {\n for (int i = 0; i < n; i++) {\n if (num[i]\ - \ == -1) dfs(i);\n }\n }\n\n void dfs(int u) {\n low[u] =\ - \ num[u] = counter++;\n S.push_back(u);\n current[u] = 1;\n \ - \ for (auto v : g[u]) {\n if (num[v] == -1) dfs(v);\n \ - \ if (current[v]) low[u] = min(low[u], low[v]);\n }\n if (low[u]\ - \ == num[u]) {\n scc.push_back(vector());\n while (1)\ - \ {\n int v = S.back(); S.pop_back(); current[v] = 0;\n \ - \ scc.back().push_back(v);\n comp_ids[v] = ((int) scc.size())\ - \ - 1;\n if (u == v) break;\n }\n }\n }\n\n\ - \ // build DAG of strongly connected components\n // Returns: adjacency\ - \ list of DAG\n std::vector> build_scc_dag() {\n std::vector>\ - \ dag(scc.size());\n for (int u = 0; u < n; u++) {\n int x =\ - \ comp_ids[u];\n for (int v : g[u]) {\n int y = comp_ids[v];\n\ - \ if (x != y) {\n dag[x].push_back(y);\n \ - \ }\n }\n }\n return dag;\n }\n};\n#line\ - \ 17 \"Graph/2sat.h\"\nstruct TwoSatSolver {\n TwoSatSolver(int _n_vars) :\ - \ n_vars(_n_vars), g(2*n_vars) {}\n\n void x_or_y_constraint(bool is_x_true,\ - \ int x, bool is_y_true, int y) {\n assert(x >= 0 && x < n_vars);\n \ - \ assert(y >= 0 && y < n_vars);\n if (!is_x_true) x += n_vars;\n \ - \ if (!is_y_true) y += n_vars;\n // x || y\n // !x -> y\n \ - \ // !y -> x\n g[(x + n_vars) % (2*n_vars)].push_back(y);\n \ - \ g[(y + n_vars) % (2*n_vars)].push_back(x);\n }\n\n // Returns:\n \ - \ // If no solution -> returns {false, {}}\n // If has solution -> returns\ - \ {true, solution}\n // where |solution| = n_vars, solution = true / false\n\ - \ pair> solve() {\n DirectedDfs tree(g);\n \ - \ vector solution(n_vars);\n for (int i = 0; i < n_vars; i++) {\n\ - \ if (tree.comp_ids[i] == tree.comp_ids[i + n_vars]) {\n \ - \ return {false, {}};\n }\n // Note that reverse(tree.scc)\ - \ is topo sorted\n solution[i] = tree.comp_ids[i] < tree.comp_ids[i\ - \ + n_vars];\n }\n return {true, solution};\n }\n\n // number\ - \ of variables\n int n_vars;\n // vertex 0 -> n_vars - 1: Ai is true\n \ - \ // vertex n_vars -> 2*n_vars - 1: Ai is false\n vector> g;\n\ - };\n" + // - (edges have costs) https://oj.vnoi.info/problem/bedao_g16_b\nstruct DirectedDfs\ + \ {\n vector> g;\n int n;\n vector num, low, current,\ + \ S;\n int counter;\n vector comp_ids;\n vector< vector > scc;\n\ + \n DirectedDfs(const vector>& _g) : g(_g), n(g.size()),\n \ + \ num(n, -1), low(n, 0), current(n, 0), counter(0), comp_ids(n, -1) {\n\ + \ for (int i = 0; i < n; i++) {\n if (num[i] == -1) dfs(i);\n\ + \ }\n }\n\n void dfs(int u) {\n low[u] = num[u] = counter++;\n\ + \ S.push_back(u);\n current[u] = 1;\n for (auto v : g[u])\ + \ {\n if (num[v] == -1) dfs(v);\n if (current[v]) low[u]\ + \ = min(low[u], low[v]);\n }\n if (low[u] == num[u]) {\n \ + \ scc.push_back(vector());\n while (1) {\n \ + \ int v = S.back(); S.pop_back(); current[v] = 0;\n scc.back().push_back(v);\n\ + \ comp_ids[v] = ((int) scc.size()) - 1;\n if (u\ + \ == v) break;\n }\n }\n }\n\n // build DAG of strongly\ + \ connected components\n // Returns: adjacency list of DAG\n std::vector>\ + \ build_scc_dag() {\n std::vector> dag(scc.size());\n\ + \ for (int u = 0; u < n; u++) {\n int x = comp_ids[u];\n \ + \ for (int v : g[u]) {\n int y = comp_ids[v];\n \ + \ if (x != y) {\n dag[x].push_back(y);\n \ + \ }\n }\n }\n return dag;\n }\n};\n#line 17 \"\ + Graph/2sat.h\"\nstruct TwoSatSolver {\n TwoSatSolver(int _n_vars) : n_vars(_n_vars),\ + \ g(2*n_vars) {}\n\n void x_or_y_constraint(bool is_x_true, int x, bool is_y_true,\ + \ int y) {\n assert(x >= 0 && x < n_vars);\n assert(y >= 0 && y\ + \ < n_vars);\n if (!is_x_true) x += n_vars;\n if (!is_y_true) y\ + \ += n_vars;\n // x || y\n // !x -> y\n // !y -> x\n \ + \ g[(x + n_vars) % (2*n_vars)].push_back(y);\n g[(y + n_vars) % (2*n_vars)].push_back(x);\n\ + \ }\n\n // Returns:\n // If no solution -> returns {false, {}}\n //\ + \ If has solution -> returns {true, solution}\n // where |solution| = n_vars,\ + \ solution = true / false\n pair> solve() {\n DirectedDfs\ + \ tree(g);\n vector solution(n_vars);\n for (int i = 0; i\ + \ < n_vars; i++) {\n if (tree.comp_ids[i] == tree.comp_ids[i + n_vars])\ + \ {\n return {false, {}};\n }\n // Note that\ + \ reverse(tree.scc) is topo sorted\n solution[i] = tree.comp_ids[i]\ + \ < tree.comp_ids[i + n_vars];\n }\n return {true, solution};\n\ + \ }\n\n // number of variables\n int n_vars;\n // vertex 0 -> n_vars\ + \ - 1: Ai is true\n // vertex n_vars -> 2*n_vars - 1: Ai is false\n vector>\ + \ g;\n};\n" code: "// For lexicographical min result:\n// - For each variable: check if it can\ \ be set to False\n// (by adding constraint i -> !i)\n// - If solver.solve()\ \ -> keep constraint i -> !i\n// - Otherwise, remove constraint i -> !i, and add\ @@ -98,7 +98,7 @@ data: isVerificationFile: false path: Graph/2sat.h requiredBy: [] - timestamp: '2022-03-04 04:16:35+08:00' + timestamp: '2024-06-02 18:23:02+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - Graph/tests/two_sat.test.cpp diff --git a/Graph/DfsTree/BridgeArticulation.h.md b/Graph/DfsTree/BridgeArticulation.h.md index f304fce8..82be2f43 100644 --- a/Graph/DfsTree/BridgeArticulation.h.md +++ b/Graph/DfsTree/BridgeArticulation.h.md @@ -74,8 +74,8 @@ data: timestamp: '2022-08-09 14:38:08+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Graph/tests/aizu_grl_3_a_articulation_points.test.cpp - Graph/tests/aizu_grl_3_b_bridge.test.cpp + - Graph/tests/aizu_grl_3_a_articulation_points.test.cpp - Graph/tests/bridge_biconnected.test.cpp documentation_of: Graph/DfsTree/BridgeArticulation.h layout: document diff --git a/Graph/DfsTree/StronglyConnected.h.md b/Graph/DfsTree/StronglyConnected.h.md index 28ff67da..5a98b52a 100644 --- a/Graph/DfsTree/StronglyConnected.h.md +++ b/Graph/DfsTree/StronglyConnected.h.md @@ -25,32 +25,11 @@ data: links: - https://cses.fi/problemset/task/1686/ - https://judge.yosupo.jp/problem/scc + - https://oj.vnoi.info/problem/bedao_g16_b bundledCode: "#line 1 \"Graph/DfsTree/StronglyConnected.h\"\n// Index from 0\n//\ \ Usage:\n// DirectedDfs tree;\n// Now you can use tree.scc\n//\n// Note: reverse(tree.scc)\ \ is topo sorted\n//\n// Tested:\n// - (requires scc to be topo sorted) https://judge.yosupo.jp/problem/scc\n\ - // - https://cses.fi/problemset/task/1686/\nstruct DirectedDfs {\n vector>\ - \ g;\n int n;\n vector num, low, current, S;\n int counter;\n \ - \ vector comp_ids;\n vector< vector > scc;\n\n DirectedDfs(const\ - \ vector>& _g) : g(_g), n(g.size()),\n num(n, -1), low(n,\ - \ 0), current(n, 0), counter(0), comp_ids(n, -1) {\n for (int i = 0; i\ - \ < n; i++) {\n if (num[i] == -1) dfs(i);\n }\n }\n\n \ - \ void dfs(int u) {\n low[u] = num[u] = counter++;\n S.push_back(u);\n\ - \ current[u] = 1;\n for (auto v : g[u]) {\n if (num[v]\ - \ == -1) dfs(v);\n if (current[v]) low[u] = min(low[u], low[v]);\n\ - \ }\n if (low[u] == num[u]) {\n scc.push_back(vector());\n\ - \ while (1) {\n int v = S.back(); S.pop_back(); current[v]\ - \ = 0;\n scc.back().push_back(v);\n comp_ids[v]\ - \ = ((int) scc.size()) - 1;\n if (u == v) break;\n }\n\ - \ }\n }\n\n // build DAG of strongly connected components\n //\ - \ Returns: adjacency list of DAG\n std::vector> build_scc_dag()\ - \ {\n std::vector> dag(scc.size());\n for (int\ - \ u = 0; u < n; u++) {\n int x = comp_ids[u];\n for (int\ - \ v : g[u]) {\n int y = comp_ids[v];\n if (x !=\ - \ y) {\n dag[x].push_back(y);\n }\n \ - \ }\n }\n return dag;\n }\n};\n" - code: "// Index from 0\n// Usage:\n// DirectedDfs tree;\n// Now you can use tree.scc\n\ - //\n// Note: reverse(tree.scc) is topo sorted\n//\n// Tested:\n// - (requires\ - \ scc to be topo sorted) https://judge.yosupo.jp/problem/scc\n// - https://cses.fi/problemset/task/1686/\n\ + // - https://cses.fi/problemset/task/1686/\n// - (edges have costs) https://oj.vnoi.info/problem/bedao_g16_b\n\ struct DirectedDfs {\n vector> g;\n int n;\n vector\ \ num, low, current, S;\n int counter;\n vector comp_ids;\n vector<\ \ vector > scc;\n\n DirectedDfs(const vector>& _g) : g(_g),\ @@ -70,18 +49,41 @@ data: \ comp_ids[u];\n for (int v : g[u]) {\n int y = comp_ids[v];\n\ \ if (x != y) {\n dag[x].push_back(y);\n \ \ }\n }\n }\n return dag;\n }\n};\n" + code: "// Index from 0\n// Usage:\n// DirectedDfs tree;\n// Now you can use tree.scc\n\ + //\n// Note: reverse(tree.scc) is topo sorted\n//\n// Tested:\n// - (requires\ + \ scc to be topo sorted) https://judge.yosupo.jp/problem/scc\n// - https://cses.fi/problemset/task/1686/\n\ + // - (edges have costs) https://oj.vnoi.info/problem/bedao_g16_b\nstruct DirectedDfs\ + \ {\n vector> g;\n int n;\n vector num, low, current,\ + \ S;\n int counter;\n vector comp_ids;\n vector< vector > scc;\n\ + \n DirectedDfs(const vector>& _g) : g(_g), n(g.size()),\n \ + \ num(n, -1), low(n, 0), current(n, 0), counter(0), comp_ids(n, -1) {\n\ + \ for (int i = 0; i < n; i++) {\n if (num[i] == -1) dfs(i);\n\ + \ }\n }\n\n void dfs(int u) {\n low[u] = num[u] = counter++;\n\ + \ S.push_back(u);\n current[u] = 1;\n for (auto v : g[u])\ + \ {\n if (num[v] == -1) dfs(v);\n if (current[v]) low[u]\ + \ = min(low[u], low[v]);\n }\n if (low[u] == num[u]) {\n \ + \ scc.push_back(vector());\n while (1) {\n \ + \ int v = S.back(); S.pop_back(); current[v] = 0;\n scc.back().push_back(v);\n\ + \ comp_ids[v] = ((int) scc.size()) - 1;\n if (u\ + \ == v) break;\n }\n }\n }\n\n // build DAG of strongly\ + \ connected components\n // Returns: adjacency list of DAG\n std::vector>\ + \ build_scc_dag() {\n std::vector> dag(scc.size());\n\ + \ for (int u = 0; u < n; u++) {\n int x = comp_ids[u];\n \ + \ for (int v : g[u]) {\n int y = comp_ids[v];\n \ + \ if (x != y) {\n dag[x].push_back(y);\n \ + \ }\n }\n }\n return dag;\n }\n};\n" dependsOn: [] isVerificationFile: false path: Graph/DfsTree/StronglyConnected.h requiredBy: - Graph/2sat.h - timestamp: '2022-03-04 04:16:35+08:00' + timestamp: '2024-06-02 18:23:02+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp - - Graph/tests/strongly_connected.test.cpp - Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp + - Graph/tests/strongly_connected.test.cpp - Graph/tests/two_sat.test.cpp + - Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp documentation_of: Graph/DfsTree/StronglyConnected.h layout: document redirect_from: diff --git a/Graph/dijkstra.h.md b/Graph/dijkstra.h.md index ce3090e1..99b7ea3c 100644 --- a/Graph/dijkstra.h.md +++ b/Graph/dijkstra.h.md @@ -67,8 +67,8 @@ data: timestamp: '2022-12-26 16:37:58+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Graph/tests/aizu_grl_1_a_dijkstra_aizu.test.cpp - Graph/tests/dijkstra.test.cpp + - Graph/tests/aizu_grl_1_a_dijkstra_aizu.test.cpp documentation_of: Graph/dijkstra.h layout: document redirect_from: diff --git a/Graph/tests/aizu_grl_1_c_floyd.test.cpp.md b/Graph/tests/aizu_grl_1_c_floyd.test.cpp.md index c182bf99..5465e964 100644 --- a/Graph/tests/aizu_grl_1_c_floyd.test.cpp.md +++ b/Graph/tests/aizu_grl_1_c_floyd.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Graph/floyd.h title: Graph/floyd.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Graph/tests/aizu_grl_2_a_mst.test.cpp.md b/Graph/tests/aizu_grl_2_a_mst.test.cpp.md index c27c03e3..bbbefbba 100644 --- a/Graph/tests/aizu_grl_2_a_mst.test.cpp.md +++ b/Graph/tests/aizu_grl_2_a_mst.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: Graph/mst.h title: Graph/mst.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Graph/tests/aizu_grl_3_a_articulation_points.test.cpp.md b/Graph/tests/aizu_grl_3_a_articulation_points.test.cpp.md index a94314cf..208621af 100644 --- a/Graph/tests/aizu_grl_3_a_articulation_points.test.cpp.md +++ b/Graph/tests/aizu_grl_3_a_articulation_points.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Graph/DfsTree/BridgeArticulation.h title: Graph/DfsTree/BridgeArticulation.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp.md b/Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp.md index 557bcf18..f88d43f6 100644 --- a/Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp.md +++ b/Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp.md @@ -20,28 +20,29 @@ data: \n// Index from 0\n// Usage:\n// DirectedDfs tree;\n// Now you can use tree.scc\n\ //\n// Note: reverse(tree.scc) is topo sorted\n//\n// Tested:\n// - (requires\ \ scc to be topo sorted) https://judge.yosupo.jp/problem/scc\n// - https://cses.fi/problemset/task/1686/\n\ - struct DirectedDfs {\n vector> g;\n int n;\n vector\ - \ num, low, current, S;\n int counter;\n vector comp_ids;\n vector<\ - \ vector > scc;\n\n DirectedDfs(const vector>& _g) : g(_g),\ - \ n(g.size()),\n num(n, -1), low(n, 0), current(n, 0), counter(0),\ - \ comp_ids(n, -1) {\n for (int i = 0; i < n; i++) {\n if (num[i]\ - \ == -1) dfs(i);\n }\n }\n\n void dfs(int u) {\n low[u] =\ - \ num[u] = counter++;\n S.push_back(u);\n current[u] = 1;\n \ - \ for (auto v : g[u]) {\n if (num[v] == -1) dfs(v);\n \ - \ if (current[v]) low[u] = min(low[u], low[v]);\n }\n if (low[u]\ - \ == num[u]) {\n scc.push_back(vector());\n while (1)\ - \ {\n int v = S.back(); S.pop_back(); current[v] = 0;\n \ - \ scc.back().push_back(v);\n comp_ids[v] = ((int) scc.size())\ - \ - 1;\n if (u == v) break;\n }\n }\n }\n\n\ - \ // build DAG of strongly connected components\n // Returns: adjacency\ - \ list of DAG\n std::vector> build_scc_dag() {\n std::vector>\ - \ dag(scc.size());\n for (int u = 0; u < n; u++) {\n int x =\ - \ comp_ids[u];\n for (int v : g[u]) {\n int y = comp_ids[v];\n\ - \ if (x != y) {\n dag[x].push_back(y);\n \ - \ }\n }\n }\n return dag;\n }\n};\n#line\ - \ 7 \"Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp\"\n\nint main() {\n\ - \ ios::sync_with_stdio(0); cin.tie(0);\n int n, m; cin >> n >> m;\n vector>\ - \ g(n);\n while (m--) {\n int u, v; cin >> u >> v;\n g[u].push_back(v);\n\ + // - (edges have costs) https://oj.vnoi.info/problem/bedao_g16_b\nstruct DirectedDfs\ + \ {\n vector> g;\n int n;\n vector num, low, current,\ + \ S;\n int counter;\n vector comp_ids;\n vector< vector > scc;\n\ + \n DirectedDfs(const vector>& _g) : g(_g), n(g.size()),\n \ + \ num(n, -1), low(n, 0), current(n, 0), counter(0), comp_ids(n, -1) {\n\ + \ for (int i = 0; i < n; i++) {\n if (num[i] == -1) dfs(i);\n\ + \ }\n }\n\n void dfs(int u) {\n low[u] = num[u] = counter++;\n\ + \ S.push_back(u);\n current[u] = 1;\n for (auto v : g[u])\ + \ {\n if (num[v] == -1) dfs(v);\n if (current[v]) low[u]\ + \ = min(low[u], low[v]);\n }\n if (low[u] == num[u]) {\n \ + \ scc.push_back(vector());\n while (1) {\n \ + \ int v = S.back(); S.pop_back(); current[v] = 0;\n scc.back().push_back(v);\n\ + \ comp_ids[v] = ((int) scc.size()) - 1;\n if (u\ + \ == v) break;\n }\n }\n }\n\n // build DAG of strongly\ + \ connected components\n // Returns: adjacency list of DAG\n std::vector>\ + \ build_scc_dag() {\n std::vector> dag(scc.size());\n\ + \ for (int u = 0; u < n; u++) {\n int x = comp_ids[u];\n \ + \ for (int v : g[u]) {\n int y = comp_ids[v];\n \ + \ if (x != y) {\n dag[x].push_back(y);\n \ + \ }\n }\n }\n return dag;\n }\n};\n#line 7 \"\ + Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp\"\n\nint main() {\n ios::sync_with_stdio(0);\ + \ cin.tie(0);\n int n, m; cin >> n >> m;\n vector> g(n);\n \ + \ while (m--) {\n int u, v; cin >> u >> v;\n g[u].push_back(v);\n\ \ }\n DirectedDfs tree(g);\n\n int q; cin >> q;\n while (q--) {\n\ \ int u, v; cin >> u >> v;\n cout << (tree.comp_ids[u] == tree.comp_ids[v])\ \ << '\\n';\n }\n}\n" @@ -57,7 +58,7 @@ data: isVerificationFile: true path: Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp requiredBy: [] - timestamp: '2022-03-04 04:16:35+08:00' + timestamp: '2024-06-02 18:23:02+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Graph/tests/aizu_grl_3_c_strongly_connected.test.cpp diff --git a/Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp.md b/Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp.md index 267c1101..1cb324dd 100644 --- a/Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp.md +++ b/Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Graph/DfsTree/StronglyConnected.h title: Graph/DfsTree/StronglyConnected.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] @@ -48,31 +48,32 @@ data: // Index from 0\n// Usage:\n// DirectedDfs tree;\n// Now you can use tree.scc\n\ //\n// Note: reverse(tree.scc) is topo sorted\n//\n// Tested:\n// - (requires\ \ scc to be topo sorted) https://judge.yosupo.jp/problem/scc\n// - https://cses.fi/problemset/task/1686/\n\ - struct DirectedDfs {\n vector> g;\n int n;\n vector\ - \ num, low, current, S;\n int counter;\n vector comp_ids;\n vector<\ - \ vector > scc;\n\n DirectedDfs(const vector>& _g) : g(_g),\ - \ n(g.size()),\n num(n, -1), low(n, 0), current(n, 0), counter(0),\ - \ comp_ids(n, -1) {\n for (int i = 0; i < n; i++) {\n if (num[i]\ - \ == -1) dfs(i);\n }\n }\n\n void dfs(int u) {\n low[u] =\ - \ num[u] = counter++;\n S.push_back(u);\n current[u] = 1;\n \ - \ for (auto v : g[u]) {\n if (num[v] == -1) dfs(v);\n \ - \ if (current[v]) low[u] = min(low[u], low[v]);\n }\n if (low[u]\ - \ == num[u]) {\n scc.push_back(vector());\n while (1)\ - \ {\n int v = S.back(); S.pop_back(); current[v] = 0;\n \ - \ scc.back().push_back(v);\n comp_ids[v] = ((int) scc.size())\ - \ - 1;\n if (u == v) break;\n }\n }\n }\n\n\ - \ // build DAG of strongly connected components\n // Returns: adjacency\ - \ list of DAG\n std::vector> build_scc_dag() {\n std::vector>\ - \ dag(scc.size());\n for (int u = 0; u < n; u++) {\n int x =\ - \ comp_ids[u];\n for (int v : g[u]) {\n int y = comp_ids[v];\n\ - \ if (x != y) {\n dag[x].push_back(y);\n \ - \ }\n }\n }\n return dag;\n }\n};\n#line\ - \ 5 \"Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp\"\n\nvoid\ - \ solve() {\n int n, m; cin >> n >> m;\n vector> g(n);\n \ - \ while (m--) {\n int u, v; cin >> u >> v;\n g[u].push_back(v);\n\ - \ }\n DirectedDfs tree(g);\n for (auto comp : tree.scc) {\n if\ - \ (comp.size() > 1) {\n cout << 1 << endl;\n return;\n \ - \ }\n }\n cout << 0 << endl;\n}\n" + // - (edges have costs) https://oj.vnoi.info/problem/bedao_g16_b\nstruct DirectedDfs\ + \ {\n vector> g;\n int n;\n vector num, low, current,\ + \ S;\n int counter;\n vector comp_ids;\n vector< vector > scc;\n\ + \n DirectedDfs(const vector>& _g) : g(_g), n(g.size()),\n \ + \ num(n, -1), low(n, 0), current(n, 0), counter(0), comp_ids(n, -1) {\n\ + \ for (int i = 0; i < n; i++) {\n if (num[i] == -1) dfs(i);\n\ + \ }\n }\n\n void dfs(int u) {\n low[u] = num[u] = counter++;\n\ + \ S.push_back(u);\n current[u] = 1;\n for (auto v : g[u])\ + \ {\n if (num[v] == -1) dfs(v);\n if (current[v]) low[u]\ + \ = min(low[u], low[v]);\n }\n if (low[u] == num[u]) {\n \ + \ scc.push_back(vector());\n while (1) {\n \ + \ int v = S.back(); S.pop_back(); current[v] = 0;\n scc.back().push_back(v);\n\ + \ comp_ids[v] = ((int) scc.size()) - 1;\n if (u\ + \ == v) break;\n }\n }\n }\n\n // build DAG of strongly\ + \ connected components\n // Returns: adjacency list of DAG\n std::vector>\ + \ build_scc_dag() {\n std::vector> dag(scc.size());\n\ + \ for (int u = 0; u < n; u++) {\n int x = comp_ids[u];\n \ + \ for (int v : g[u]) {\n int y = comp_ids[v];\n \ + \ if (x != y) {\n dag[x].push_back(y);\n \ + \ }\n }\n }\n return dag;\n }\n};\n#line 5 \"\ + Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp\"\n\nvoid solve()\ + \ {\n int n, m; cin >> n >> m;\n vector> g(n);\n while (m--)\ + \ {\n int u, v; cin >> u >> v;\n g[u].push_back(v);\n }\n \ + \ DirectedDfs tree(g);\n for (auto comp : tree.scc) {\n if (comp.size()\ + \ > 1) {\n cout << 1 << endl;\n return;\n }\n \ + \ }\n cout << 0 << endl;\n}\n" code: "#define PROBLEM \"https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_4_A\"\ \n\n#include \"../../template.h\"\n#include \"../DfsTree/StronglyConnected.h\"\ \n\nvoid solve() {\n int n, m; cin >> n >> m;\n vector> g(n);\n\ @@ -86,7 +87,7 @@ data: isVerificationFile: true path: Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp requiredBy: [] - timestamp: '2022-03-04 04:16:35+08:00' + timestamp: '2024-06-02 18:23:02+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp diff --git a/Graph/tests/aizu_grl_5_a_tree_diameter.test.cpp.md b/Graph/tests/aizu_grl_5_a_tree_diameter.test.cpp.md index 4905ff68..a4b769d3 100644 --- a/Graph/tests/aizu_grl_5_a_tree_diameter.test.cpp.md +++ b/Graph/tests/aizu_grl_5_a_tree_diameter.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Graph/tree_diameter.h title: Graph/tree_diameter.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Graph/tests/strongly_connected.test.cpp.md b/Graph/tests/strongly_connected.test.cpp.md index 331eeb53..2bbacc42 100644 --- a/Graph/tests/strongly_connected.test.cpp.md +++ b/Graph/tests/strongly_connected.test.cpp.md @@ -19,34 +19,35 @@ data: \ std;\n\n#line 1 \"Graph/DfsTree/StronglyConnected.h\"\n// Index from 0\n// Usage:\n\ // DirectedDfs tree;\n// Now you can use tree.scc\n//\n// Note: reverse(tree.scc)\ \ is topo sorted\n//\n// Tested:\n// - (requires scc to be topo sorted) https://judge.yosupo.jp/problem/scc\n\ - // - https://cses.fi/problemset/task/1686/\nstruct DirectedDfs {\n vector>\ - \ g;\n int n;\n vector num, low, current, S;\n int counter;\n \ - \ vector comp_ids;\n vector< vector > scc;\n\n DirectedDfs(const\ - \ vector>& _g) : g(_g), n(g.size()),\n num(n, -1), low(n,\ - \ 0), current(n, 0), counter(0), comp_ids(n, -1) {\n for (int i = 0; i\ - \ < n; i++) {\n if (num[i] == -1) dfs(i);\n }\n }\n\n \ - \ void dfs(int u) {\n low[u] = num[u] = counter++;\n S.push_back(u);\n\ - \ current[u] = 1;\n for (auto v : g[u]) {\n if (num[v]\ - \ == -1) dfs(v);\n if (current[v]) low[u] = min(low[u], low[v]);\n\ - \ }\n if (low[u] == num[u]) {\n scc.push_back(vector());\n\ - \ while (1) {\n int v = S.back(); S.pop_back(); current[v]\ - \ = 0;\n scc.back().push_back(v);\n comp_ids[v]\ - \ = ((int) scc.size()) - 1;\n if (u == v) break;\n }\n\ - \ }\n }\n\n // build DAG of strongly connected components\n //\ - \ Returns: adjacency list of DAG\n std::vector> build_scc_dag()\ - \ {\n std::vector> dag(scc.size());\n for (int\ - \ u = 0; u < n; u++) {\n int x = comp_ids[u];\n for (int\ - \ v : g[u]) {\n int y = comp_ids[v];\n if (x !=\ - \ y) {\n dag[x].push_back(y);\n }\n \ - \ }\n }\n return dag;\n }\n};\n#line 7 \"Graph/tests/strongly_connected.test.cpp\"\ - \n\n#define REP(i, a) for (int i = 0, _##i = (a); i < _##i; ++i)\n#define SZ(x)\ - \ ((int)(x).size())\n\nint32_t main() {\n ios::sync_with_stdio(0); cin.tie(0);\n\ - \ int n, m; cin >> n >> m;\n vector> g(n);\n REP(i,m) {\n\ - \ int u, v; cin >> u >> v;\n g[u].push_back(v);\n }\n\n DirectedDfs\ - \ tree(g);\n\n reverse(tree.scc.begin(), tree.scc.end());\n cout << SZ(tree.scc)\ - \ << endl;\n for (auto comp : tree.scc) {\n cout << comp.size();\n \ - \ for (int x : comp) cout << ' ' << x;\n cout << '\\n';\n }\n\ - \ return 0;\n}\n" + // - https://cses.fi/problemset/task/1686/\n// - (edges have costs) https://oj.vnoi.info/problem/bedao_g16_b\n\ + struct DirectedDfs {\n vector> g;\n int n;\n vector\ + \ num, low, current, S;\n int counter;\n vector comp_ids;\n vector<\ + \ vector > scc;\n\n DirectedDfs(const vector>& _g) : g(_g),\ + \ n(g.size()),\n num(n, -1), low(n, 0), current(n, 0), counter(0),\ + \ comp_ids(n, -1) {\n for (int i = 0; i < n; i++) {\n if (num[i]\ + \ == -1) dfs(i);\n }\n }\n\n void dfs(int u) {\n low[u] =\ + \ num[u] = counter++;\n S.push_back(u);\n current[u] = 1;\n \ + \ for (auto v : g[u]) {\n if (num[v] == -1) dfs(v);\n \ + \ if (current[v]) low[u] = min(low[u], low[v]);\n }\n if (low[u]\ + \ == num[u]) {\n scc.push_back(vector());\n while (1)\ + \ {\n int v = S.back(); S.pop_back(); current[v] = 0;\n \ + \ scc.back().push_back(v);\n comp_ids[v] = ((int) scc.size())\ + \ - 1;\n if (u == v) break;\n }\n }\n }\n\n\ + \ // build DAG of strongly connected components\n // Returns: adjacency\ + \ list of DAG\n std::vector> build_scc_dag() {\n std::vector>\ + \ dag(scc.size());\n for (int u = 0; u < n; u++) {\n int x =\ + \ comp_ids[u];\n for (int v : g[u]) {\n int y = comp_ids[v];\n\ + \ if (x != y) {\n dag[x].push_back(y);\n \ + \ }\n }\n }\n return dag;\n }\n};\n#line\ + \ 7 \"Graph/tests/strongly_connected.test.cpp\"\n\n#define REP(i, a) for (int\ + \ i = 0, _##i = (a); i < _##i; ++i)\n#define SZ(x) ((int)(x).size())\n\nint32_t\ + \ main() {\n ios::sync_with_stdio(0); cin.tie(0);\n int n, m; cin >> n >>\ + \ m;\n vector> g(n);\n REP(i,m) {\n int u, v; cin >>\ + \ u >> v;\n g[u].push_back(v);\n }\n\n DirectedDfs tree(g);\n\n \ + \ reverse(tree.scc.begin(), tree.scc.end());\n cout << SZ(tree.scc) << endl;\n\ + \ for (auto comp : tree.scc) {\n cout << comp.size();\n for (int\ + \ x : comp) cout << ' ' << x;\n cout << '\\n';\n }\n return 0;\n\ + }\n" code: "#define PROBLEM \"https://judge.yosupo.jp/problem/scc\"\n\n#include \n\ using namespace std;\n\n#include \"../DfsTree/StronglyConnected.h\"\n\n#define\ \ REP(i, a) for (int i = 0, _##i = (a); i < _##i; ++i)\n#define SZ(x) ((int)(x).size())\n\ @@ -62,7 +63,7 @@ data: isVerificationFile: true path: Graph/tests/strongly_connected.test.cpp requiredBy: [] - timestamp: '2022-03-04 04:16:35+08:00' + timestamp: '2024-06-02 18:23:02+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Graph/tests/strongly_connected.test.cpp diff --git a/Graph/tests/two_sat.test.cpp.md b/Graph/tests/two_sat.test.cpp.md index e3a91da6..1af499d6 100644 --- a/Graph/tests/two_sat.test.cpp.md +++ b/Graph/tests/two_sat.test.cpp.md @@ -30,44 +30,44 @@ data: \n// Index from 0\n// Usage:\n// DirectedDfs tree;\n// Now you can use tree.scc\n\ //\n// Note: reverse(tree.scc) is topo sorted\n//\n// Tested:\n// - (requires\ \ scc to be topo sorted) https://judge.yosupo.jp/problem/scc\n// - https://cses.fi/problemset/task/1686/\n\ - struct DirectedDfs {\n vector> g;\n int n;\n vector\ - \ num, low, current, S;\n int counter;\n vector comp_ids;\n vector<\ - \ vector > scc;\n\n DirectedDfs(const vector>& _g) : g(_g),\ - \ n(g.size()),\n num(n, -1), low(n, 0), current(n, 0), counter(0),\ - \ comp_ids(n, -1) {\n for (int i = 0; i < n; i++) {\n if (num[i]\ - \ == -1) dfs(i);\n }\n }\n\n void dfs(int u) {\n low[u] =\ - \ num[u] = counter++;\n S.push_back(u);\n current[u] = 1;\n \ - \ for (auto v : g[u]) {\n if (num[v] == -1) dfs(v);\n \ - \ if (current[v]) low[u] = min(low[u], low[v]);\n }\n if (low[u]\ - \ == num[u]) {\n scc.push_back(vector());\n while (1)\ - \ {\n int v = S.back(); S.pop_back(); current[v] = 0;\n \ - \ scc.back().push_back(v);\n comp_ids[v] = ((int) scc.size())\ - \ - 1;\n if (u == v) break;\n }\n }\n }\n\n\ - \ // build DAG of strongly connected components\n // Returns: adjacency\ - \ list of DAG\n std::vector> build_scc_dag() {\n std::vector>\ - \ dag(scc.size());\n for (int u = 0; u < n; u++) {\n int x =\ - \ comp_ids[u];\n for (int v : g[u]) {\n int y = comp_ids[v];\n\ - \ if (x != y) {\n dag[x].push_back(y);\n \ - \ }\n }\n }\n return dag;\n }\n};\n#line\ - \ 17 \"Graph/2sat.h\"\nstruct TwoSatSolver {\n TwoSatSolver(int _n_vars) :\ - \ n_vars(_n_vars), g(2*n_vars) {}\n\n void x_or_y_constraint(bool is_x_true,\ - \ int x, bool is_y_true, int y) {\n assert(x >= 0 && x < n_vars);\n \ - \ assert(y >= 0 && y < n_vars);\n if (!is_x_true) x += n_vars;\n \ - \ if (!is_y_true) y += n_vars;\n // x || y\n // !x -> y\n \ - \ // !y -> x\n g[(x + n_vars) % (2*n_vars)].push_back(y);\n \ - \ g[(y + n_vars) % (2*n_vars)].push_back(x);\n }\n\n // Returns:\n \ - \ // If no solution -> returns {false, {}}\n // If has solution -> returns\ - \ {true, solution}\n // where |solution| = n_vars, solution = true / false\n\ - \ pair> solve() {\n DirectedDfs tree(g);\n \ - \ vector solution(n_vars);\n for (int i = 0; i < n_vars; i++) {\n\ - \ if (tree.comp_ids[i] == tree.comp_ids[i + n_vars]) {\n \ - \ return {false, {}};\n }\n // Note that reverse(tree.scc)\ - \ is topo sorted\n solution[i] = tree.comp_ids[i] < tree.comp_ids[i\ - \ + n_vars];\n }\n return {true, solution};\n }\n\n // number\ - \ of variables\n int n_vars;\n // vertex 0 -> n_vars - 1: Ai is true\n \ - \ // vertex n_vars -> 2*n_vars - 1: Ai is false\n vector> g;\n\ - };\n#line 7 \"Graph/tests/two_sat.test.cpp\"\n\n#define REP(i, a) for (int i =\ - \ 0, _##i = (a); i < _##i; ++i)\n\nint32_t main() {\n ios::sync_with_stdio(0);\ + // - (edges have costs) https://oj.vnoi.info/problem/bedao_g16_b\nstruct DirectedDfs\ + \ {\n vector> g;\n int n;\n vector num, low, current,\ + \ S;\n int counter;\n vector comp_ids;\n vector< vector > scc;\n\ + \n DirectedDfs(const vector>& _g) : g(_g), n(g.size()),\n \ + \ num(n, -1), low(n, 0), current(n, 0), counter(0), comp_ids(n, -1) {\n\ + \ for (int i = 0; i < n; i++) {\n if (num[i] == -1) dfs(i);\n\ + \ }\n }\n\n void dfs(int u) {\n low[u] = num[u] = counter++;\n\ + \ S.push_back(u);\n current[u] = 1;\n for (auto v : g[u])\ + \ {\n if (num[v] == -1) dfs(v);\n if (current[v]) low[u]\ + \ = min(low[u], low[v]);\n }\n if (low[u] == num[u]) {\n \ + \ scc.push_back(vector());\n while (1) {\n \ + \ int v = S.back(); S.pop_back(); current[v] = 0;\n scc.back().push_back(v);\n\ + \ comp_ids[v] = ((int) scc.size()) - 1;\n if (u\ + \ == v) break;\n }\n }\n }\n\n // build DAG of strongly\ + \ connected components\n // Returns: adjacency list of DAG\n std::vector>\ + \ build_scc_dag() {\n std::vector> dag(scc.size());\n\ + \ for (int u = 0; u < n; u++) {\n int x = comp_ids[u];\n \ + \ for (int v : g[u]) {\n int y = comp_ids[v];\n \ + \ if (x != y) {\n dag[x].push_back(y);\n \ + \ }\n }\n }\n return dag;\n }\n};\n#line 17 \"\ + Graph/2sat.h\"\nstruct TwoSatSolver {\n TwoSatSolver(int _n_vars) : n_vars(_n_vars),\ + \ g(2*n_vars) {}\n\n void x_or_y_constraint(bool is_x_true, int x, bool is_y_true,\ + \ int y) {\n assert(x >= 0 && x < n_vars);\n assert(y >= 0 && y\ + \ < n_vars);\n if (!is_x_true) x += n_vars;\n if (!is_y_true) y\ + \ += n_vars;\n // x || y\n // !x -> y\n // !y -> x\n \ + \ g[(x + n_vars) % (2*n_vars)].push_back(y);\n g[(y + n_vars) % (2*n_vars)].push_back(x);\n\ + \ }\n\n // Returns:\n // If no solution -> returns {false, {}}\n //\ + \ If has solution -> returns {true, solution}\n // where |solution| = n_vars,\ + \ solution = true / false\n pair> solve() {\n DirectedDfs\ + \ tree(g);\n vector solution(n_vars);\n for (int i = 0; i\ + \ < n_vars; i++) {\n if (tree.comp_ids[i] == tree.comp_ids[i + n_vars])\ + \ {\n return {false, {}};\n }\n // Note that\ + \ reverse(tree.scc) is topo sorted\n solution[i] = tree.comp_ids[i]\ + \ < tree.comp_ids[i + n_vars];\n }\n return {true, solution};\n\ + \ }\n\n // number of variables\n int n_vars;\n // vertex 0 -> n_vars\ + \ - 1: Ai is true\n // vertex n_vars -> 2*n_vars - 1: Ai is false\n vector>\ + \ g;\n};\n#line 7 \"Graph/tests/two_sat.test.cpp\"\n\n#define REP(i, a) for (int\ + \ i = 0, _##i = (a); i < _##i; ++i)\n\nint32_t main() {\n ios::sync_with_stdio(0);\ \ cin.tie(0);\n string wtf; cin >> wtf >> wtf;\n int n, m; cin >> n >> m;\n\ \ TwoSatSolver solver(n);\n while (m--) {\n int x, y; cin >> x >>\ \ y >> wtf;\n solver.x_or_y_constraint(x > 0, std::abs(x) - 1, y > 0, std::abs(y)\ @@ -95,7 +95,7 @@ data: isVerificationFile: true path: Graph/tests/two_sat.test.cpp requiredBy: [] - timestamp: '2022-03-04 04:16:35+08:00' + timestamp: '2024-06-02 18:23:02+08:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: Graph/tests/two_sat.test.cpp diff --git a/Graph/tests/yosupo_mst.test.cpp.md b/Graph/tests/yosupo_mst.test.cpp.md index cb0dc969..eb9f2667 100644 --- a/Graph/tests/yosupo_mst.test.cpp.md +++ b/Graph/tests/yosupo_mst.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: Graph/mst.h title: Graph/mst.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Graph/tree_diameter.h.md b/Graph/tree_diameter.h.md index 8d86c91c..38f1f303 100644 --- a/Graph/tree_diameter.h.md +++ b/Graph/tree_diameter.h.md @@ -48,8 +48,8 @@ data: timestamp: '2022-11-21 21:56:30+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Graph/tests/tree_diameter.test.cpp - Graph/tests/aizu_grl_5_a_tree_diameter.test.cpp + - Graph/tests/tree_diameter.test.cpp documentation_of: Graph/tree_diameter.h layout: document redirect_from: diff --git a/ML/lightbgm_example.py.md b/ML/lightbgm_example.py.md index 88d3e45a..52dcd688 100644 --- a/ML/lightbgm_example.py.md +++ b/ML/lightbgm_example.py.md @@ -8,11 +8,11 @@ data: _verificationStatusIcon: ':warning:' attributes: links: [] - bundledCode: "Traceback (most recent call last):\n File \"/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/onlinejudge_verify/documentation/build.py\"\ + bundledCode: "Traceback (most recent call last):\n File \"/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/onlinejudge_verify/documentation/build.py\"\ , line 71, in _render_source_code_stat\n bundled_code = language.bundle(stat.path,\ \ basedir=basedir, options={'include_paths': [basedir]}).decode()\n \ \ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\ - \ File \"/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/python.py\"\ + \ File \"/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/python.py\"\ , line 96, in bundle\n raise NotImplementedError\nNotImplementedError\n" code: "import sys\ninput = sys.stdin.readline\n\n\nimport pandas as pd\nimport numpy\ \ as np\n\nfrom sklearn.model_selection import train_test_split\nimport lightgbm\ diff --git a/Math/NumberTheory/Pollard_factorize.h.md b/Math/NumberTheory/Pollard_factorize.h.md index f7a57840..4a803565 100644 --- a/Math/NumberTheory/Pollard_factorize.h.md +++ b/Math/NumberTheory/Pollard_factorize.h.md @@ -149,8 +149,8 @@ data: verificationStatus: LIBRARY_ALL_AC verifiedWith: - Math/tests/factorize.test.cpp - - Math/tests/cnt_divisors_stress.test.cpp - Math/tests/aizu_ntl_1_a_factorize.test.cpp + - Math/tests/cnt_divisors_stress.test.cpp - Math/tests/is_prime_yukicoder.test.cpp documentation_of: Math/NumberTheory/Pollard_factorize.h layout: document diff --git a/Math/Polynomial/NTT.h.md b/Math/Polynomial/NTT.h.md index 978e7a7b..577b5dea 100644 --- a/Math/Polynomial/NTT.h.md +++ b/Math/Polynomial/NTT.h.md @@ -144,8 +144,8 @@ data: verificationStatus: LIBRARY_ALL_AC verifiedWith: - Math/tests/formal_power_series_multiply.test.cpp - - Math/tests/ntt_any_mod.test.cpp - Math/tests/formal_power_series_multiply_any_mod.test.cpp + - Math/tests/ntt_any_mod.test.cpp - Math/tests/ntt.test.cpp documentation_of: Math/Polynomial/NTT.h layout: document diff --git a/Math/Polynomial/NTT_chemthan.h.md b/Math/Polynomial/NTT_chemthan.h.md index d6e387c3..90f79904 100644 --- a/Math/Polynomial/NTT_chemthan.h.md +++ b/Math/Polynomial/NTT_chemthan.h.md @@ -142,8 +142,8 @@ data: verificationStatus: LIBRARY_ALL_AC verifiedWith: - Math/tests/ntt_chemthan_any_mod.test.cpp - - Math/tests/ntt_chemthan_any_mod_2.test.cpp - Math/tests/ntt_chemthan.test.cpp + - Math/tests/ntt_chemthan_any_mod_2.test.cpp documentation_of: Math/Polynomial/NTT_chemthan.h layout: document redirect_from: diff --git a/Math/bigint.h.md b/Math/bigint.h.md index 139c25ec..395c3500 100644 --- a/Math/bigint.h.md +++ b/Math/bigint.h.md @@ -531,14 +531,14 @@ data: timestamp: '2023-10-03 01:03:14-07:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Math/tests/aizu_ntl_2_f_bigint_mul_fft.test.cpp + - Math/tests/aizu_ntl_2_c_bigint_mul.test.cpp - Math/tests/aizu_ntl_2_d_bigint_div.test.cpp + - Math/tests/aizu_ntl_2_e_bigint_mod.test.cpp - Math/tests/aizu_ntl_2_b_bigint_sub.test.cpp + - Math/tests/aizu_ntl_2_f_bigint_mul_fft.test.cpp - Math/tests/aizu_ntl_2_c_bigint_mul_karatsuba.test.cpp - Math/tests/aizu_ntl_2_a_bigint_add.test.cpp - - Math/tests/aizu_ntl_2_e_bigint_mod.test.cpp - Math/tests/yosupo_bigint_add.test.cpp - - Math/tests/aizu_ntl_2_c_bigint_mul.test.cpp documentation_of: Math/bigint.h layout: document redirect_from: diff --git a/Math/modint.h.md b/Math/modint.h.md index 98f17b8a..15ff78f6 100644 --- a/Math/modint.h.md +++ b/Math/modint.h.md @@ -210,26 +210,26 @@ data: timestamp: '2023-10-15 09:43:20+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Math/tests/formal_power_series_multiply.test.cpp - - Math/tests/berlekamp_massey.test.cpp - - Math/tests/matrix_mult.test.cpp - - Math/tests/aizu_ntl_1_b_modulo_pow.test.cpp - - Math/tests/ntt_any_mod.test.cpp - - Math/tests/formal_power_series_multiply_any_mod.test.cpp - - Math/tests/ntt.test.cpp - String/tests/suffix_array_queries.test.cpp - - String/tests/zfunc_hash.test.cpp - - String/tests/yukicoder_1408_string_hash_lcp.test.cpp - - String/tests/aizu_alds_14_b_string_hash.test.cpp - String/tests/lcp.test.cpp + - String/tests/aizu_alds_14_b_string_hash.test.cpp - String/tests/suffix_array.test.cpp - - DataStructure/test/segment_tree_rangeaffinerangesum.test.cpp - - DataStructure/test/segment_tree_rangeaffinepointget.test.cpp + - String/tests/zfunc_hash.test.cpp + - String/tests/yukicoder_1408_string_hash_lcp.test.cpp + - DP/tests/yosupo_cnt_distinct_subseq.test.cpp - DataStructure/test/segment_tree_pointsetrangecomposite.test.cpp + - DataStructure/test/segment_tree_rangeaffinerangesum.test.cpp - DataStructure/test/hld_vertexsetpathcomposite.test.cpp + - DataStructure/test/segment_tree_rangeaffinepointget.test.cpp - DataStructure/test/link_cut_tree_vertexsetpathcomposite.test.cpp - DataStructure/test/splay_tree.test.cpp - - DP/tests/yosupo_cnt_distinct_subseq.test.cpp + - Math/tests/formal_power_series_multiply.test.cpp + - Math/tests/berlekamp_massey.test.cpp + - Math/tests/matrix_mult.test.cpp + - Math/tests/formal_power_series_multiply_any_mod.test.cpp + - Math/tests/ntt_any_mod.test.cpp + - Math/tests/aizu_ntl_1_b_modulo_pow.test.cpp + - Math/tests/ntt.test.cpp documentation_of: Math/modint.h layout: document redirect_from: diff --git a/Math/multiplicative_functions_linear.h.md b/Math/multiplicative_functions_linear.h.md index a24bb827..124743e3 100644 --- a/Math/multiplicative_functions_linear.h.md +++ b/Math/multiplicative_functions_linear.h.md @@ -86,9 +86,9 @@ data: timestamp: '2023-01-16 13:01:49+07:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: + - Math/tests/euler_phi_stress.test.cpp - Math/tests/cnt_divisors_stress.test.cpp - Math/tests/smallest_prime_factor_stress.test.cpp - - Math/tests/euler_phi_stress.test.cpp documentation_of: Math/multiplicative_functions_linear.h layout: document redirect_from: diff --git a/Math/tests/aizu_ntl_1_a_factorize.test.cpp.md b/Math/tests/aizu_ntl_1_a_factorize.test.cpp.md index bce55401..4718bf9d 100644 --- a/Math/tests/aizu_ntl_1_a_factorize.test.cpp.md +++ b/Math/tests/aizu_ntl_1_a_factorize.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/NumberTheory/Pollard_factorize.h title: Math/NumberTheory/Pollard_factorize.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_1_b_modulo_pow.test.cpp.md b/Math/tests/aizu_ntl_1_b_modulo_pow.test.cpp.md index 295561ab..09e9a09d 100644 --- a/Math/tests/aizu_ntl_1_b_modulo_pow.test.cpp.md +++ b/Math/tests/aizu_ntl_1_b_modulo_pow.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/modint.h title: Math/modint.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_1_d_euler_phi.test.cpp.md b/Math/tests/aizu_ntl_1_d_euler_phi.test.cpp.md index 14f15b1f..fbd9320c 100644 --- a/Math/tests/aizu_ntl_1_d_euler_phi.test.cpp.md +++ b/Math/tests/aizu_ntl_1_d_euler_phi.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/Prime/EulerPhi.h title: Math/Prime/EulerPhi.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_1_e_extended_euclid.test.cpp.md b/Math/tests/aizu_ntl_1_e_extended_euclid.test.cpp.md index 864109c3..15236f8a 100644 --- a/Math/tests/aizu_ntl_1_e_extended_euclid.test.cpp.md +++ b/Math/tests/aizu_ntl_1_e_extended_euclid.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/NumberTheory/ExtendedEuclid.h title: Math/NumberTheory/ExtendedEuclid.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_2_a_bigint_add.test.cpp.md b/Math/tests/aizu_ntl_2_a_bigint_add.test.cpp.md index cc42553c..d62c2259 100644 --- a/Math/tests/aizu_ntl_2_a_bigint_add.test.cpp.md +++ b/Math/tests/aizu_ntl_2_a_bigint_add.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/bigint.h title: Math/bigint.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_2_b_bigint_sub.test.cpp.md b/Math/tests/aizu_ntl_2_b_bigint_sub.test.cpp.md index 95c7ee64..9a8be9d4 100644 --- a/Math/tests/aizu_ntl_2_b_bigint_sub.test.cpp.md +++ b/Math/tests/aizu_ntl_2_b_bigint_sub.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/bigint.h title: Math/bigint.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_2_c_bigint_mul.test.cpp.md b/Math/tests/aizu_ntl_2_c_bigint_mul.test.cpp.md index be18364f..ec47bbc5 100644 --- a/Math/tests/aizu_ntl_2_c_bigint_mul.test.cpp.md +++ b/Math/tests/aizu_ntl_2_c_bigint_mul.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/bigint.h title: Math/bigint.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_2_c_bigint_mul_karatsuba.test.cpp.md b/Math/tests/aizu_ntl_2_c_bigint_mul_karatsuba.test.cpp.md index aa7745a5..99a06786 100644 --- a/Math/tests/aizu_ntl_2_c_bigint_mul_karatsuba.test.cpp.md +++ b/Math/tests/aizu_ntl_2_c_bigint_mul_karatsuba.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/bigint.h title: Math/bigint.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_2_d_bigint_div.test.cpp.md b/Math/tests/aizu_ntl_2_d_bigint_div.test.cpp.md index bc486851..5fefc2e6 100644 --- a/Math/tests/aizu_ntl_2_d_bigint_div.test.cpp.md +++ b/Math/tests/aizu_ntl_2_d_bigint_div.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/bigint.h title: Math/bigint.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_2_e_bigint_mod.test.cpp.md b/Math/tests/aizu_ntl_2_e_bigint_mod.test.cpp.md index f99f04a5..35a74a7d 100644 --- a/Math/tests/aizu_ntl_2_e_bigint_mod.test.cpp.md +++ b/Math/tests/aizu_ntl_2_e_bigint_mod.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/bigint.h title: Math/bigint.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/aizu_ntl_2_f_bigint_mul_fft.test.cpp.md b/Math/tests/aizu_ntl_2_f_bigint_mul_fft.test.cpp.md index fc055e3b..44df1540 100644 --- a/Math/tests/aizu_ntl_2_f_bigint_mul_fft.test.cpp.md +++ b/Math/tests/aizu_ntl_2_f_bigint_mul_fft.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/bigint.h title: Math/bigint.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/cnt_divisors_stress.test.cpp.md b/Math/tests/cnt_divisors_stress.test.cpp.md index 6269f3f8..289844aa 100644 --- a/Math/tests/cnt_divisors_stress.test.cpp.md +++ b/Math/tests/cnt_divisors_stress.test.cpp.md @@ -16,7 +16,7 @@ data: - icon: ':heavy_check_mark:' path: Math/multiplicative_functions_linear.h title: Math/multiplicative_functions_linear.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/euler_phi_stress.test.cpp.md b/Math/tests/euler_phi_stress.test.cpp.md index 10658fa3..e87a583a 100644 --- a/Math/tests/euler_phi_stress.test.cpp.md +++ b/Math/tests/euler_phi_stress.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: Math/multiplicative_functions_linear.h title: Math/multiplicative_functions_linear.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/is_prime_yukicoder.test.cpp.md b/Math/tests/is_prime_yukicoder.test.cpp.md index db5bb189..6b6fc7b6 100644 --- a/Math/tests/is_prime_yukicoder.test.cpp.md +++ b/Math/tests/is_prime_yukicoder.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/NumberTheory/Pollard_factorize.h title: Math/NumberTheory/Pollard_factorize.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/rabin_miller_32_stress.test.cpp.md b/Math/tests/rabin_miller_32_stress.test.cpp.md index 05c93956..88dca29f 100644 --- a/Math/tests/rabin_miller_32_stress.test.cpp.md +++ b/Math/tests/rabin_miller_32_stress.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: Math/Prime/SieveFast.h title: Math/Prime/SieveFast.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/smallest_prime_factor_stress.test.cpp.md b/Math/tests/smallest_prime_factor_stress.test.cpp.md index b4fd86ca..ad7c7059 100644 --- a/Math/tests/smallest_prime_factor_stress.test.cpp.md +++ b/Math/tests/smallest_prime_factor_stress.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/multiplicative_functions_linear.h title: Math/multiplicative_functions_linear.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Math/tests/yosupo_bigint_add.test.cpp.md b/Math/tests/yosupo_bigint_add.test.cpp.md index 3399c3ad..663f5375 100644 --- a/Math/tests/yosupo_bigint_add.test.cpp.md +++ b/Math/tests/yosupo_bigint_add.test.cpp.md @@ -14,15 +14,15 @@ data: PROBLEM: https://judge.yosupo.jp/problem/addition_of_big_integers links: - https://judge.yosupo.jp/problem/addition_of_big_integers - bundledCode: "Traceback (most recent call last):\n File \"/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/onlinejudge_verify/documentation/build.py\"\ + bundledCode: "Traceback (most recent call last):\n File \"/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/onlinejudge_verify/documentation/build.py\"\ , line 71, in _render_source_code_stat\n bundled_code = language.bundle(stat.path,\ \ basedir=basedir, options={'include_paths': [basedir]}).decode()\n \ \ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\ - \ File \"/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus.py\"\ - , line 187, in bundle\n bundler.update(path)\n File \"/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py\"\ + \ File \"/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus.py\"\ + , line 187, in bundle\n bundler.update(path)\n File \"/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py\"\ , line 401, in update\n self.update(self._resolve(pathlib.Path(included), included_from=path))\n\ \ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n \ - \ File \"/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py\"\ + \ File \"/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py\"\ , line 260, in _resolve\n raise BundleErrorAt(path, -1, \"no such header\"\ )\nonlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: bits/stdc++.h:\ \ line -1: no such header\n" diff --git a/Math/tests/yosupo_primality_rabin_miller.test.cpp.md b/Math/tests/yosupo_primality_rabin_miller.test.cpp.md index 3d9e82b1..14086044 100644 --- a/Math/tests/yosupo_primality_rabin_miller.test.cpp.md +++ b/Math/tests/yosupo_primality_rabin_miller.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Math/Prime/RabinMiller.h title: Math/Prime/RabinMiller.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Misc/Die.cpp.md b/Misc/Die.cpp.md index 720a6a1d..02dff7dc 100644 --- a/Misc/Die.cpp.md +++ b/Misc/Die.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':warning:' path: Misc/Die.h title: Misc/Die.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Misc/compress.h.md b/Misc/compress.h.md index b3b85437..dad1aa15 100644 --- a/Misc/compress.h.md +++ b/Misc/compress.h.md @@ -122,16 +122,16 @@ data: isVerificationFile: false path: Misc/compress.h requiredBy: - - DataStructure/Fenwick/Fenwick2D.h - - DP/cnt_distinct_subseq.h - DP/count_inversions.h + - DP/cnt_distinct_subseq.h + - DataStructure/Fenwick/Fenwick2D.h timestamp: '2022-12-22 10:28:54+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - DataStructure/test/fenwick_2d_rectsum.test.cpp - - DataStructure/test/fenwick_2d_pointaddrectsum.test.cpp - DP/tests/yosupo_cnt_distinct_subseq.test.cpp - DP/tests/aizu_alds1_5_d_count_inversions.test.cpp + - DataStructure/test/fenwick_2d_rectsum.test.cpp + - DataStructure/test/fenwick_2d_pointaddrectsum.test.cpp documentation_of: Misc/compress.h layout: document redirect_from: diff --git a/Misc/left_nearest_smaller.h.md b/Misc/left_nearest_smaller.h.md index 43533125..dca6adda 100644 --- a/Misc/left_nearest_smaller.h.md +++ b/Misc/left_nearest_smaller.h.md @@ -55,8 +55,8 @@ data: timestamp: '2022-11-01 15:19:12+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Misc/tests/aizu_dpl_3_c_largest_histogram.test.cpp - Misc/tests/aizu_dpl_3_b_largest_01_rectangle.test.cpp + - Misc/tests/aizu_dpl_3_c_largest_histogram.test.cpp documentation_of: Misc/left_nearest_smaller.h layout: document redirect_from: diff --git a/Misc/tests/aizu_dpl_3_b_largest_01_rectangle.test.cpp.md b/Misc/tests/aizu_dpl_3_b_largest_01_rectangle.test.cpp.md index 24b362aa..0c1f6128 100644 --- a/Misc/tests/aizu_dpl_3_b_largest_01_rectangle.test.cpp.md +++ b/Misc/tests/aizu_dpl_3_b_largest_01_rectangle.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Misc/left_nearest_smaller.h title: Misc/left_nearest_smaller.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Misc/tests/aizu_dpl_3_c_largest_histogram.test.cpp.md b/Misc/tests/aizu_dpl_3_c_largest_histogram.test.cpp.md index e494aa99..a31b5819 100644 --- a/Misc/tests/aizu_dpl_3_c_largest_histogram.test.cpp.md +++ b/Misc/tests/aizu_dpl_3_c_largest_histogram.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Misc/left_nearest_smaller.h title: Misc/left_nearest_smaller.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/Misc/tests/yosupo_int128.test.cpp.md b/Misc/tests/yosupo_int128.test.cpp.md index 8aa10fcd..98feef23 100644 --- a/Misc/tests/yosupo_int128.test.cpp.md +++ b/Misc/tests/yosupo_int128.test.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':heavy_check_mark:' path: Misc/int128.h title: Misc/int128.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/String/hash.h.md b/String/hash.h.md index 0a2d6feb..bd2841b2 100644 --- a/String/hash.h.md +++ b/String/hash.h.md @@ -234,11 +234,11 @@ data: verificationStatus: LIBRARY_ALL_AC verifiedWith: - String/tests/suffix_array_queries.test.cpp - - String/tests/zfunc_hash.test.cpp - - String/tests/yukicoder_1408_string_hash_lcp.test.cpp - - String/tests/aizu_alds_14_b_string_hash.test.cpp - String/tests/lcp.test.cpp + - String/tests/aizu_alds_14_b_string_hash.test.cpp - String/tests/suffix_array.test.cpp + - String/tests/zfunc_hash.test.cpp + - String/tests/yukicoder_1408_string_hash_lcp.test.cpp documentation_of: String/hash.h layout: document redirect_from: diff --git a/String/lyndon.cpp.md b/String/lyndon.cpp.md index e41af13c..c15f763c 100644 --- a/String/lyndon.cpp.md +++ b/String/lyndon.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':warning:' path: String/lyndon.h title: String/lyndon.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/String/minmove.cpp.md b/String/minmove.cpp.md index ba65d189..50c76fbc 100644 --- a/String/minmove.cpp.md +++ b/String/minmove.cpp.md @@ -4,7 +4,7 @@ data: - icon: ':warning:' path: String/minmove.h title: String/minmove.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/String/tests/aizu_alds_14_b_string_hash.test.cpp.md b/String/tests/aizu_alds_14_b_string_hash.test.cpp.md index d35386fd..99d16ce6 100644 --- a/String/tests/aizu_alds_14_b_string_hash.test.cpp.md +++ b/String/tests/aizu_alds_14_b_string_hash.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: String/hash.h title: String/hash.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/String/tests/yukicoder_1408_string_hash_lcp.test.cpp.md b/String/tests/yukicoder_1408_string_hash_lcp.test.cpp.md index d50a5253..0eb6129d 100644 --- a/String/tests/yukicoder_1408_string_hash_lcp.test.cpp.md +++ b/String/tests/yukicoder_1408_string_hash_lcp.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: String/hash.h title: String/hash.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/String/tests/zfunc_hash.test.cpp.md b/String/tests/zfunc_hash.test.cpp.md index c1aa804f..560c46a3 100644 --- a/String/tests/zfunc_hash.test.cpp.md +++ b/String/tests/zfunc_hash.test.cpp.md @@ -7,7 +7,7 @@ data: - icon: ':heavy_check_mark:' path: String/hash.h title: String/hash.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h _extendedRequiredBy: [] diff --git a/buffered_reader.h.md b/buffered_reader.h.md index 8419870b..bb74d7a0 100644 --- a/buffered_reader.h.md +++ b/buffered_reader.h.md @@ -86,21 +86,21 @@ data: timestamp: '2022-12-14 02:22:04+08:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - - Math/tests/matrix_mult.test.cpp - - Math/tests/matrix_det.test.cpp - - Math/tests/matrix_inverse.test.cpp - - DataStructure/test/fenwick_pointaddrangesum.test.cpp + - DataStructure/test/segment_tree_pointsetrangecomposite.test.cpp - DataStructure/test/segment_tree_rangeaffinerangesum.test.cpp - DataStructure/test/yosupo_hld_kth_vertex_on_path.test.cpp - - DataStructure/test/segment_tree_2d_pointaddrectsum.test.cpp - DataStructure/test/rmq.test.cpp + - DataStructure/test/segment_tree_2d_pointaddrectsum.test.cpp + - DataStructure/test/fenwick.test.cpp + - DataStructure/test/segment_tree_pointaddrangesum.test.cpp - DataStructure/test/segment_tree_rangeaffinepointget.test.cpp + - DataStructure/test/wavelet_matrix_rangekthsmallest.test.cpp - DataStructure/test/lca.test.cpp + - DataStructure/test/fenwick_pointaddrangesum.test.cpp - DataStructure/test/hld_lca.test.cpp - - DataStructure/test/wavelet_matrix_rangekthsmallest.test.cpp - - DataStructure/test/segment_tree_pointsetrangecomposite.test.cpp - - DataStructure/test/fenwick.test.cpp - - DataStructure/test/segment_tree_pointaddrangesum.test.cpp + - Math/tests/matrix_mult.test.cpp + - Math/tests/matrix_det.test.cpp + - Math/tests/matrix_inverse.test.cpp documentation_of: buffered_reader.h layout: document redirect_from: diff --git a/index.md b/index.md index d6a73809..6393d998 100644 --- a/index.md +++ b/index.md @@ -187,7 +187,7 @@ data: - icon: ':warning:' path: Geometry/RectInRect.h title: Geometry/RectInRect.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/basic.h title: Geometry/basic.h - icon: ':heavy_check_mark:' @@ -199,7 +199,7 @@ data: - icon: ':warning:' path: Geometry/n_segment_intersects.h title: Geometry/n_segment_intersects.h - - icon: ':heavy_check_mark:' + - icon: ':question:' path: Geometry/polygon.h title: Geometry/polygon.h - icon: ':warning:' @@ -589,7 +589,7 @@ data: - icon: ':warning:' path: stack_increase.cpp title: stack_increase.cpp - - icon: ':heavy_check_mark:' + - icon: ':question:' path: template.h title: template.h verificationCategories: @@ -830,6 +830,9 @@ data: - icon: ':heavy_check_mark:' path: Geometry/tests/polygon_in_convex.test.cpp title: Geometry/tests/polygon_in_convex.test.cpp + - icon: ':x:' + path: Geometry/tests/yosupo_convex_hull.test.cpp + title: Geometry/tests/yosupo_convex_hull.test.cpp - icon: ':heavy_check_mark:' path: Geometry/tests/z_basic_ccw.test.cpp title: Geometry/tests/z_basic_ccw.test.cpp diff --git a/template.h.md b/template.h.md index 7fe128d9..6caa9a8f 100644 --- a/template.h.md +++ b/template.h.md @@ -159,6 +159,9 @@ data: - icon: ':heavy_check_mark:' path: Geometry/tests/polygon_in_convex.test.cpp title: Geometry/tests/polygon_in_convex.test.cpp + - icon: ':x:' + path: Geometry/tests/yosupo_convex_hull.test.cpp + title: Geometry/tests/yosupo_convex_hull.test.cpp - icon: ':heavy_check_mark:' path: Geometry/tests/z_basic_ccw.test.cpp title: Geometry/tests/z_basic_ccw.test.cpp @@ -261,9 +264,9 @@ data: - icon: ':heavy_check_mark:' path: String/tests/zfunc_hash.test.cpp title: String/tests/zfunc_hash.test.cpp - _isVerificationFailed: false + _isVerificationFailed: true _pathExtension: h - _verificationStatusIcon: ':heavy_check_mark:' + _verificationStatusIcon: ':question:' attributes: links: - https://quangloc99.github.io/2021/07/30/my-CP-debugging-template.html @@ -322,95 +325,96 @@ data: isVerificationFile: false path: template.h requiredBy: - - Misc/Die.cpp - - String/lyndon.cpp - String/minmove.cpp - - DP/optimizations/divide_conquer.cpp + - String/lyndon.cpp - DP/optimizations/knuth.cpp + - DP/optimizations/divide_conquer.cpp + - Misc/Die.cpp timestamp: '2022-01-13 13:16:22+08:00' - verificationStatus: LIBRARY_ALL_AC + verificationStatus: LIBRARY_SOME_WA verifiedWith: - - Math/tests/aizu_ntl_2_f_bigint_mul_fft.test.cpp - - Math/tests/aizu_ntl_1_e_extended_euclid.test.cpp + - String/tests/aizu_alds_14_b_string_hash.test.cpp + - String/tests/zfunc_hash.test.cpp + - String/tests/yukicoder_1408_string_hash_lcp.test.cpp + - DP/tests/yosupo_lis.test.cpp + - DP/tests/aizu_dpl_1_d_lis.test.cpp + - DP/tests/yosupo_cnt_distinct_subseq.test.cpp + - DP/tests/aizu_alds1_5_d_count_inversions.test.cpp + - Misc/tests/yosupo_int128.test.cpp + - Misc/tests/aizu_dpl_3_b_largest_01_rectangle.test.cpp + - Misc/tests/aizu_dpl_3_c_largest_histogram.test.cpp + - DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp + - DataStructure/test/aizu_dsl_2_e_segment_tree_rangeadd.test.cpp + - DataStructure/test/aizu_dsl_4_a_range_set.test.cpp + - DataStructure/test/yosupo_rangereversesum_splay.test.cpp + - DataStructure/test/aizu_dsl_2_d_rangeset.test.cpp + - DataStructure/test/aizu_grl_5_c_lca.test.cpp + - DataStructure/test/aizu_grl_5_c_hld_lca.test.cpp + - DataStructure/test/aizu_dsl_2_i_segment_tree_rangesetsum.test.cpp + - DataStructure/test/aizu_dsl_2_g_segment_tree_rangeaddsum.test.cpp + - DataStructure/test/yukicoder_674_range_set.test.cpp + - DataStructure/test/aizu_dsl_2_a_segment_tree_rmq_update.test.cpp + - DataStructure/test/aizu_grl_5_e_hld_edge.test.cpp + - DataStructure/test/aizu_dsl_2_f_segment_tree_rangesetmin.test.cpp + - DataStructure/test/segment_tree_rangeaffinepointget.test.cpp + - DataStructure/test/binary_trie.test.cpp + - DataStructure/test/persistent_fenwick_tree_rmq.test.cpp + - DataStructure/test/mo_algorithm_with_undo.test.cpp + - DataStructure/test/aizu_dsl_1_b_dsu_weighted.test.cpp + - DataStructure/test/aizu_dsl_2_d_segment_tree_rangeset.test.cpp + - DataStructure/test/aizu_dsl_2_h_segment_tree_rangeaddmin.test.cpp + - DataStructure/test/aizu_dsl_2_b_segment_tree_sum.test.cpp + - DataStructure/test/mo_algorithm.test.cpp + - Graph/tests/aizu_grl_1_c_floyd.test.cpp + - Graph/tests/yosupo_mst.test.cpp + - Graph/tests/aizu_grl_2_a_mst.test.cpp + - Graph/tests/aizu_grl_5_a_tree_diameter.test.cpp + - Graph/tests/aizu_grl_3_a_articulation_points.test.cpp + - Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp + - Math/tests/euler_phi_stress.test.cpp + - Math/tests/aizu_ntl_2_c_bigint_mul.test.cpp - Math/tests/aizu_ntl_2_d_bigint_div.test.cpp - - Math/tests/yosupo_primality_rabin_miller.test.cpp - - Math/tests/cnt_divisors_stress.test.cpp + - Math/tests/aizu_ntl_2_e_bigint_mod.test.cpp - Math/tests/aizu_ntl_2_b_bigint_sub.test.cpp - - Math/tests/rabin_miller_32_stress.test.cpp - - Math/tests/aizu_ntl_2_c_bigint_mul_karatsuba.test.cpp - - Math/tests/smallest_prime_factor_stress.test.cpp - Math/tests/aizu_ntl_1_a_factorize.test.cpp - - Math/tests/is_prime_yukicoder.test.cpp - - Math/tests/aizu_ntl_2_a_bigint_add.test.cpp - Math/tests/aizu_ntl_1_b_modulo_pow.test.cpp - - Math/tests/aizu_ntl_2_e_bigint_mod.test.cpp - - Math/tests/aizu_ntl_2_c_bigint_mul.test.cpp - - Math/tests/euler_phi_stress.test.cpp + - Math/tests/cnt_divisors_stress.test.cpp - Math/tests/aizu_ntl_1_d_euler_phi.test.cpp - - Misc/tests/aizu_dpl_3_c_largest_histogram.test.cpp - - Misc/tests/yosupo_int128.test.cpp - - Misc/tests/aizu_dpl_3_b_largest_01_rectangle.test.cpp - - String/tests/zfunc_hash.test.cpp - - String/tests/yukicoder_1408_string_hash_lcp.test.cpp - - String/tests/aizu_alds_14_b_string_hash.test.cpp + - Math/tests/smallest_prime_factor_stress.test.cpp + - Math/tests/aizu_ntl_1_e_extended_euclid.test.cpp + - Math/tests/rabin_miller_32_stress.test.cpp + - Math/tests/is_prime_yukicoder.test.cpp + - Math/tests/aizu_ntl_2_f_bigint_mul_fft.test.cpp + - Math/tests/aizu_ntl_2_c_bigint_mul_karatsuba.test.cpp + - Math/tests/aizu_ntl_2_a_bigint_add.test.cpp + - Math/tests/yosupo_primality_rabin_miller.test.cpp + - Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp + - Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp + - Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp + - Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp + - Geometry/tests/z_polygon_is_convex.test.cpp + - Geometry/tests/z_basic_segment_intersect.test.cpp + - Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp + - Geometry/tests/yosupo_convex_hull.test.cpp + - Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp + - Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp + - Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp + - Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp - Geometry/tests/aizu_cgl_7_d_circle_line_intersection.test.cpp + - Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp + - Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp - Geometry/tests/z_polygon_convexhull.test.cpp + - Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp + - Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp - Geometry/tests/aizu_cgl_5_a_closest_pair.test.cpp - - Geometry/tests/aizu_cgl_7_a_cicle_tangents.test.cpp - - Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp - Geometry/tests/aizu_cgl_2_d_basic_segment_distance.test.cpp - - Geometry/tests/aizu_cgl_4_c_polygon_convex_cut.test.cpp - - Geometry/tests/z_polygon_area.test.cpp - - Geometry/tests/z_basic_ccw.test.cpp - - Geometry/tests/aizu_cgl_1_c_basic_ccw.test.cpp - - Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp - - Geometry/tests/aizu_cgl_4_a_polygon_convex_hull.test.cpp - Geometry/tests/aizu_cgl_3_a_polygon_area.test.cpp - - Geometry/tests/aizu_cgl_1_a_basic_projection.test.cpp - - Geometry/tests/aizu_cgl_2_c_basic_line_intersection.test.cpp + - Geometry/tests/aizu_cgl_7_g_circle_circle_tangent_points.test.cpp - Geometry/tests/aizu_cgl_3_b_polygon_is_convex.test.cpp - - Geometry/tests/aizu_cgl_7_e_circle_circle_intersection.test.cpp - - Geometry/tests/z_polygon_is_convex.test.cpp - - Geometry/tests/aizu_cgl_4_b_polygon_convex_diameter.test.cpp - - Geometry/tests/aizu_cgl_7_f_circle_tangent_points.test.cpp - - Geometry/tests/aizu_cgl_7_i_circle_common_area.test.cpp - - Geometry/tests/aizu_cgl_2_b_basic_segment_intersect.test.cpp - Geometry/tests/polygon_in_convex.test.cpp - - Geometry/tests/z_basic_segment_intersect.test.cpp - - Geometry/tests/aizu_cgl_1_b_basic_reflection.test.cpp - - Geometry/tests/aizu_cgl_2_a_basic_line.test.cpp - - DataStructure/test/yukicoder_674_range_set.test.cpp - - DataStructure/test/aizu_grl_5_c_hld_lca.test.cpp - - DataStructure/test/aizu_dsl_2_h_segment_tree_rangeaddmin.test.cpp - - DataStructure/test/aizu_dsl_2_e_segment_tree_rangeadd.test.cpp - - DataStructure/test/aizu_grl_5_e_hld_edge.test.cpp - - DataStructure/test/mo_algorithm_with_undo.test.cpp - - DataStructure/test/segment_tree_rangeaffinepointget.test.cpp - - DataStructure/test/yosupo_rangereversesum_splay.test.cpp - - DataStructure/test/mo_algorithm.test.cpp - - DataStructure/test/binary_trie.test.cpp - - DataStructure/test/aizu_grl_5_d_hld_edge.test.cpp - - DataStructure/test/persistent_fenwick_tree_rmq.test.cpp - - DataStructure/test/aizu_dsl_2_a_segment_tree_rmq_update.test.cpp - - DataStructure/test/aizu_dsl_2_b_segment_tree_sum.test.cpp - - DataStructure/test/aizu_dsl_4_a_range_set.test.cpp - - DataStructure/test/aizu_dsl_2_d_rangeset.test.cpp - - DataStructure/test/aizu_dsl_2_g_segment_tree_rangeaddsum.test.cpp - - DataStructure/test/aizu_dsl_2_i_segment_tree_rangesetsum.test.cpp - - DataStructure/test/aizu_grl_5_c_lca.test.cpp - - DataStructure/test/aizu_dsl_1_b_dsu_weighted.test.cpp - - DataStructure/test/aizu_dsl_2_d_segment_tree_rangeset.test.cpp - - DataStructure/test/aizu_dsl_2_f_segment_tree_rangesetmin.test.cpp - - DP/tests/yosupo_lis.test.cpp - - DP/tests/yosupo_cnt_distinct_subseq.test.cpp - - DP/tests/aizu_dpl_1_d_lis.test.cpp - - DP/tests/aizu_alds1_5_d_count_inversions.test.cpp - - Graph/tests/aizu_grl_4_a_strongly_connected_cycle_check.test.cpp - - Graph/tests/aizu_grl_3_a_articulation_points.test.cpp - - Graph/tests/yosupo_mst.test.cpp - - Graph/tests/aizu_grl_5_a_tree_diameter.test.cpp - - Graph/tests/aizu_grl_2_a_mst.test.cpp - - Graph/tests/aizu_grl_1_c_floyd.test.cpp + - Geometry/tests/aizu_cgl_3_c_polygon_in_polygon.test.cpp + - Geometry/tests/z_polygon_area.test.cpp + - Geometry/tests/z_basic_ccw.test.cpp documentation_of: template.h layout: document redirect_from: