結果
問題 | No.1623 三角形の制作 |
ユーザー | silversmith |
提出日時 | 2021-07-24 21:58:43 |
言語 | Rust (1.77.0 + proconio) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,458 bytes |
コンパイル時間 | 13,074 ms |
コンパイル使用メモリ | 379,308 KB |
実行使用メモリ | 106,240 KB |
最終ジャッジ日時 | 2024-07-20 03:43:28 |
合計ジャッジ時間 | 17,275 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
10,624 KB |
testcase_01 | AC | 1 ms
5,248 KB |
testcase_02 | TLE | - |
testcase_03 | -- | - |
testcase_04 | -- | - |
testcase_05 | -- | - |
testcase_06 | -- | - |
testcase_07 | -- | - |
testcase_08 | -- | - |
testcase_09 | -- | - |
testcase_10 | -- | - |
testcase_11 | -- | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
testcase_15 | -- | - |
testcase_16 | -- | - |
testcase_17 | -- | - |
testcase_18 | -- | - |
testcase_19 | -- | - |
testcase_20 | -- | - |
ソースコード
fn getline() -> String{ let mut __ret=String::new(); std::io::stdin().read_line(&mut __ret).ok(); return __ret; } fn main() { let n=getline(); let n:Vec<_>=n.trim().split(' ').collect(); let n:i32=n[0].parse().unwrap(); let r=getline(); let r:Vec<_>=r.trim().split(' ').collect(); let r:Vec<i32>=r.iter().map(|v| v.parse().unwrap()).collect(); let g=getline(); let g:Vec<_>=g.trim().split(' ').collect(); let g:Vec<i32>=g.iter().map(|v| v.parse().unwrap()).collect(); let b=getline(); let b:Vec<_>=b.trim().split(' ').collect(); let b:Vec<i32>=b.iter().map(|v| v.parse().unwrap()).collect(); let mut gb: Vec<_> = Vec::new(); let mut mgb: Vec<_> = Vec::new(); let mut ans:i32=0; let split_width1:i32 = 100; let split_num1:i32 = (n + (split_width1 - 1)) / split_width1; let split_width2:i32 = 1000; let split_num2:i32 = (n + (split_width2 - 1)) / split_width2; for k1 in 0..split_num1 { gb.clear(); mgb.clear(); for k2 in 0..split_num2 { for i in split_width1 * k1..std::cmp::min(n,split_width1 * (k1 + 1)) { for j in split_width2 * k2..std::cmp::min(n,split_width2 * (k2 + 1)) { let l = g[i as usize] + b[j as usize]; gb.push(l); let m = std::cmp::max(g[i as usize],b[j as usize]); mgb.push(m); } } } for i in 0..n { for l in 0..gb.len() { if (r[i as usize] < gb[l as usize]) & (r[i as usize] >= mgb[l as usize]) { ans = ans +1; } } } } println!("{}",ans) }