Submission #52989734
Source Code Expand
#![allow(unused_imports)]
#![allow(unused_variables)]
#![allow(non_snake_case)]
#![allow(dead_code)]
#![allow(unused_macros)]
macro_rules! debug {
( $($val:expr),* $(,)* ) => {{
#[cfg(debug_assertions)]
eprintln!( concat!($(stringify!($val), " = {:?}, "),*), $($val),* );
}};
}
macro_rules! debug2D {
( $array:expr ) => {{
#![cfg(debug_assertions)]
eprintln!("{}: ", stringify!($array));
for row in &$array {
eprintln!("{:?}", row);
}
}};
}
use proconio::{
input,
marker::{Bytes, Chars, Usize1},
};
const NEG1: usize = 1_usize.wrapping_neg();
const INF: isize = 1001001001001001001;
fn main() {
input! {
N: usize,
K: Usize1,
mut A: [isize; N]
}
if cfg!(debug_assertions) {
let mut all = vec![];
for i in 0..N {
for j in 0..i {
all.push(A[i] * A[j]);
}
}
all.sort();
eprintln!("{all:?}");
}
// Aをソート
A.sort();
// A[i] * A[j] がx未満である(i,j)の個数を数える
let count = |x: isize| -> usize {
let mut ans = 0;
for i in 0..N {
if A[i] >= 0 {
let mut ok = NEG1;
let mut ng = N;
while ng.wrapping_sub(ok) > 1 {
let mid = ok.wrapping_add(ng) / 2;
if A[i] * A[mid] < x {
ok = mid;
} else {
ng = mid;
}
}
if ok != NEG1 && i <= ok {
ans += ok;
} else {
ans += ok.wrapping_add(1);
}
} else {
let mut ok = NEG1;
let mut ng = N;
while ng.wrapping_sub(ok) > 1 {
let mid = ok.wrapping_add(ng) / 2;
if A[i] * A[N - mid - 1] < x {
ok = mid;
} else {
ng = mid;
}
}
if ok != NEG1 && N.wrapping_sub(ok) - 1 <= i {
ans += ok;
} else {
ans += ok.wrapping_add(1);
}
}
}
ans / 2
};
let mut ok = -INF;
let mut ng = INF;
while ng - ok > 1 {
let mid = (ok + ng) / 2;
if count(mid) <= K {
ok = mid;
} else {
ng = mid;
}
}
println!("{ok}");
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Pairs |
| User | powell |
| Language | Rust (rustc 1.70.0) |
| Score | 400 |
| Code Size | 2575 Byte |
| Status | AC |
| Exec Time | 453 ms |
| Memory | 6024 KiB |
Judge Result
| Set Name | Sample | Subtask1 | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_small_01.txt, sub1_small_02.txt, sub1_small_03.txt, sub1_small_04.txt, sub1_small_05.txt, sub1_small_06.txt, sub1_small_07.txt, sub1_small_08.txt, sub1_small_09.txt, sub1_small_10.txt, sub1_small_11.txt, sub1_small_12.txt, sub1_small_13.txt, sub1_small_14.txt, sub1_small_15.txt, sub1_small_16.txt, sub1_small_17.txt, sub1_small_18.txt, sub1_small_19.txt, sub1_small_20.txt, sub1_small_21.txt, sub1_small_22.txt, sub1_small_23.txt, sub1_small_24.txt, sub1_small_25.txt, sub1_small_26.txt, sub1_small_27.txt, sub1_small_28.txt, sub1_small_29.txt, sub1_small_30.txt, sub1_small_31.txt, sub1_small_32.txt, sub1_small_33.txt, sub1_small_34.txt, sub1_small_35.txt, sub1_small_36.txt, sub1_small_37.txt, sub1_small_38.txt, sub1_small_39.txt, sub1_small_40.txt, sub1_small_41.txt, sub1_small_42.txt, sub1_small_43.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 1 ms | 1984 KiB |
| sample_02.txt | AC | 1 ms | 1924 KiB |
| sample_03.txt | AC | 1 ms | 1980 KiB |
| sub1_01.txt | AC | 102 ms | 3388 KiB |
| sub1_02.txt | AC | 308 ms | 4896 KiB |
| sub1_03.txt | AC | 431 ms | 5936 KiB |
| sub1_04.txt | AC | 138 ms | 4116 KiB |
| sub1_05.txt | AC | 102 ms | 3560 KiB |
| sub1_06.txt | AC | 40 ms | 2420 KiB |
| sub1_07.txt | AC | 327 ms | 5028 KiB |
| sub1_08.txt | AC | 385 ms | 5420 KiB |
| sub1_09.txt | AC | 314 ms | 4628 KiB |
| sub1_10.txt | AC | 62 ms | 2632 KiB |
| sub1_11.txt | AC | 224 ms | 5368 KiB |
| sub1_12.txt | AC | 33 ms | 2236 KiB |
| sub1_13.txt | AC | 231 ms | 4932 KiB |
| sub1_14.txt | AC | 88 ms | 3092 KiB |
| sub1_15.txt | AC | 31 ms | 2228 KiB |
| sub1_16.txt | AC | 229 ms | 5512 KiB |
| sub1_17.txt | AC | 123 ms | 3788 KiB |
| sub1_18.txt | AC | 12 ms | 2240 KiB |
| sub1_19.txt | AC | 252 ms | 5928 KiB |
| sub1_20.txt | AC | 237 ms | 4016 KiB |
| sub1_21.txt | AC | 349 ms | 5964 KiB |
| sub1_22.txt | AC | 217 ms | 3680 KiB |
| sub1_23.txt | AC | 148 ms | 3944 KiB |
| sub1_24.txt | AC | 142 ms | 3476 KiB |
| sub1_25.txt | AC | 69 ms | 2840 KiB |
| sub1_26.txt | AC | 291 ms | 4640 KiB |
| sub1_27.txt | AC | 206 ms | 3812 KiB |
| sub1_28.txt | AC | 410 ms | 6016 KiB |
| sub1_29.txt | AC | 276 ms | 5940 KiB |
| sub1_30.txt | AC | 398 ms | 5892 KiB |
| sub1_31.txt | AC | 400 ms | 5908 KiB |
| sub1_32.txt | AC | 453 ms | 6024 KiB |
| sub1_33.txt | AC | 448 ms | 5920 KiB |
| sub1_small_01.txt | AC | 2 ms | 1828 KiB |
| sub1_small_02.txt | AC | 1 ms | 1880 KiB |
| sub1_small_03.txt | AC | 2 ms | 1956 KiB |
| sub1_small_04.txt | AC | 1 ms | 1944 KiB |
| sub1_small_05.txt | AC | 1 ms | 1920 KiB |
| sub1_small_06.txt | AC | 2 ms | 1956 KiB |
| sub1_small_07.txt | AC | 1 ms | 1980 KiB |
| sub1_small_08.txt | AC | 2 ms | 2008 KiB |
| sub1_small_09.txt | AC | 1 ms | 1944 KiB |
| sub1_small_10.txt | AC | 2 ms | 1948 KiB |
| sub1_small_11.txt | AC | 2 ms | 1828 KiB |
| sub1_small_12.txt | AC | 2 ms | 1964 KiB |
| sub1_small_13.txt | AC | 1 ms | 1956 KiB |
| sub1_small_14.txt | AC | 2 ms | 1904 KiB |
| sub1_small_15.txt | AC | 1 ms | 1868 KiB |
| sub1_small_16.txt | AC | 3 ms | 1892 KiB |
| sub1_small_17.txt | AC | 1 ms | 1920 KiB |
| sub1_small_18.txt | AC | 1 ms | 2016 KiB |
| sub1_small_19.txt | AC | 1 ms | 1868 KiB |
| sub1_small_20.txt | AC | 2 ms | 2044 KiB |
| sub1_small_21.txt | AC | 2 ms | 1904 KiB |
| sub1_small_22.txt | AC | 2 ms | 1840 KiB |
| sub1_small_23.txt | AC | 1 ms | 1984 KiB |
| sub1_small_24.txt | AC | 1 ms | 1960 KiB |
| sub1_small_25.txt | AC | 1 ms | 1996 KiB |
| sub1_small_26.txt | AC | 1 ms | 1948 KiB |
| sub1_small_27.txt | AC | 1 ms | 1896 KiB |
| sub1_small_28.txt | AC | 1 ms | 1948 KiB |
| sub1_small_29.txt | AC | 2 ms | 1964 KiB |
| sub1_small_30.txt | AC | 1 ms | 1952 KiB |
| sub1_small_31.txt | AC | 4 ms | 1964 KiB |
| sub1_small_32.txt | AC | 2 ms | 2040 KiB |
| sub1_small_33.txt | AC | 2 ms | 2020 KiB |
| sub1_small_34.txt | AC | 2 ms | 1832 KiB |
| sub1_small_35.txt | AC | 2 ms | 1908 KiB |
| sub1_small_36.txt | AC | 1 ms | 1976 KiB |
| sub1_small_37.txt | AC | 2 ms | 1884 KiB |
| sub1_small_38.txt | AC | 1 ms | 1952 KiB |
| sub1_small_39.txt | AC | 1 ms | 1988 KiB |
| sub1_small_40.txt | AC | 3 ms | 1940 KiB |
| sub1_small_41.txt | AC | 1 ms | 1924 KiB |
| sub1_small_42.txt | AC | 1 ms | 1944 KiB |
| sub1_small_43.txt | AC | 2 ms | 1960 KiB |