| Task: | Apartments |
| Sender: | aalto26bh_042 |
| Submission time: | 2026-09-05 19:55:02 +0300 |
| Language: | Rust (2021) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | WRONG ANSWER | 0.00 s | details |
| #4 | WRONG ANSWER | 0.00 s | details |
| #5 | ACCEPTED | 0.02 s | details |
| #6 | WRONG ANSWER | 0.48 s | details |
| #7 | TIME LIMIT EXCEEDED | -- | details |
| #8 | TIME LIMIT EXCEEDED | -- | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.00 s | details |
| #12 | WRONG ANSWER | 0.00 s | details |
| #13 | ACCEPTED | 0.69 s | details |
| #14 | ACCEPTED | 0.09 s | details |
| #15 | ACCEPTED | 0.05 s | details |
| #16 | TIME LIMIT EXCEEDED | -- | details |
| #17 | ACCEPTED | 0.02 s | details |
| #18 | ACCEPTED | 0.00 s | details |
| #19 | ACCEPTED | 0.00 s | details |
Code
#![allow(unused)]
use std::{io, usize};
fn take_tuple() -> (usize, usize, usize) {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let mut it = input
.trim()
.split_whitespace()
.map(|x| x.parse::<usize>().unwrap());
(it.next().unwrap(), it.next().unwrap(), it.next().unwrap())
}
fn take_vector() -> Vec<usize> {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let arr: Vec<usize> = input
.trim()
.split_whitespace()
.map(|x| x.parse::<usize>().unwrap())
.collect();
return arr;
}
fn find_suitable(
min: &usize,
max: &usize,
num_apartments: &usize,
apartments: &Vec<usize>,
start_index: &mut usize,
count: &mut usize,
) {
for i in *start_index..*num_apartments {
// println!("{}", i);
let current_apartment = apartments[i];
// println!(
// " current apartment is {} with size {}",
// i, current_apartment
// );
if current_apartment > *max {
return;
}
if *min <= current_apartment && current_apartment <= *max {
// println!("Found a match!");
*count += 1;
*start_index = i+1;
return;
}
}
}
fn main() {
let (num_applicants, num_apartments, allowed_diff): (usize, usize, usize) = take_tuple();
let mut applicants: Vec<usize> = take_vector();
applicants.sort_unstable();
let mut apartments: Vec<usize> = take_vector();
apartments.sort_unstable();
let mut count: usize = 0;
let mut start_index: usize = 0;
for applicant_index in 0..num_applicants {
let min_size = applicants[applicant_index] - allowed_diff;
let max_size = applicants[applicant_index] + allowed_diff;
// println!(
// "Looking at applicant {}, with desired size range: {}-{}:",
// applicant_index, min_size, max_size
// );
find_suitable(&min_size, &max_size, &num_apartments, &apartments, &mut start_index, &mut count);
}
println!("{}", count);
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 10 10 0 37 62 56 69 34 46 10 86 16 49 50 95 47 43 9 62 83 71 71 7 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 10 10 10 90 41 20 39 49 21 35 31 74 86 14 24 24 7 82 85 82 4 60 95 |
| correct output |
|---|
| 6 |
| user output |
|---|
| 6 |
Test 3
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 1000 59 5 65 15 42 81 58 96 50 1 18 59 71 65 97 83 80 68 92 67 |
| correct output |
|---|
| 10 |
| user output |
|---|
| 0 |
Feedback: Incorrect character on line 1 col 1: expected "10", got "0"
Test 4
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 1000000000 25 80 59 43 67 21 77 5 8 99 66 41 62 24 88 55 1 53 50 60 |
| correct output |
|---|
| 10 |
| user output |
|---|
| 0 |
Feedback: Incorrect character on line 1 col 1: expected "10", got "0"
Test 5
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 0 34 48 12 99 89 71 20 7 9 38 58... |
| correct output |
|---|
| 197286 |
| user output |
|---|
| 197286 |
Test 6
Verdict: WRONG ANSWER
| input |
|---|
| 200000 200000 10 89 26 46 74 91 19 47 18 83 85 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| 181769 |
Feedback: Incorrect character on line 1 col 1: expected "200000", got "181769"
Test 7
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 200000 1000 71 84 11 90 70 59 60 11 52 65 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| (empty) |
Test 8
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 200000 1000000000 21 94 92 4 12 5 38 47 59 92 2 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| (empty) |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 10 10 0 727245017 647121519 549745115 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 10 10 10 30734435 218114477 257355293 4... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 10 10 1000 7899629 162004163 327616450 51... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 12
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 1000000000 725746771 537157640 742868604 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| 0 |
Feedback: Incorrect character on line 1 col 1: expected "10", got "0"
Test 13
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 0 375495587 322263536 985991668 ... |
| correct output |
|---|
| 42 |
| user output |
|---|
| 42 |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 10 906603621 968136956 666786366 ... |
| correct output |
|---|
| 846 |
| user output |
|---|
| 846 |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 1000 215460174 880023362 242442952 ... |
| correct output |
|---|
| 57149 |
| user output |
|---|
| 57149 |
Test 16
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 200000 1000000000 50349580 773460492 440699400 8... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| (empty) |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 199999 1 1 199996 199997 149999 117797 19... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 18
Verdict: ACCEPTED
| input |
|---|
| 5 2 2 2 2 2 40 50 40 50 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 19
Verdict: ACCEPTED
| input |
|---|
| 4 3 5 60 45 80 60 30 60 75 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
