| Task: | Apartments |
| Sender: | aalto26bh_025 |
| Submission time: | 2026-09-07 18:58:23 +0300 |
| Language: | C |
| Status: | READY |
| Result: | TIME LIMIT EXCEEDED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.29 s | details |
| #6 | ACCEPTED | 0.09 s | details |
| #7 | ACCEPTED | 0.10 s | details |
| #8 | ACCEPTED | 0.09 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.00 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | TIME LIMIT EXCEEDED | -- | details |
| #14 | TIME LIMIT EXCEEDED | -- | details |
| #15 | TIME LIMIT EXCEEDED | -- | details |
| #16 | ACCEPTED | 0.13 s | details |
| #17 | ACCEPTED | 0.04 s | details |
| #18 | ACCEPTED | 0.00 s | details |
| #19 | ACCEPTED | 0.00 s | details |
Compiler report
input/code.c: In function 'main':
input/code.c:22:5: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
22 | scanf("%i %i %i", &applicantNum, &apartmentNum, &maxDiff);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
input/code.c:27:9: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
27 | scanf("%d", &applicants[i]);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
input/code.c:33:9: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
33 | scanf("%d", &apartments[i]);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~Code
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
// Sorting. Just used https://www.geeksforgeeks.org/c/qsort-function-in-c/
int comp(const void *a, const void *b) {
int x = *(const int *)a;
int y = *(const int *)b;
if (x < y)
return -1;
if (x > y)
return 1;
return 0;
}
int main(){
// INITIALIZATION
int applicantNum, apartmentNum, maxDiff;
scanf("%i %i %i", &applicantNum, &apartmentNum, &maxDiff);
int* applicants = (int*)malloc(applicantNum * sizeof(int));
// Read applicant wishes
for (int i = 0; i < applicantNum; i++) {
scanf("%d", &applicants[i]);
}
int* apartments = (int*)malloc(apartmentNum * sizeof(int));
// Read apartment sizes
for (int i = 0; i < apartmentNum; i++) {
scanf("%d", &apartments[i]);
}
// MAIN PROGRAM
// We want to find as many apartments for as many people as we can.
// Lets fill them up from the bottom. (Smallest first)
// Sort smallest first.
qsort(applicants, applicantNum, sizeof(int), comp);
qsort(apartments, apartmentNum, sizeof(int), comp);
int found = 0;
unsigned int current_hus = 0;
for (unsigned int man = 0; man < applicantNum; man++)
{
// We dont want to give away apartments, that we have already given to best candidate.
for (unsigned int hus = current_hus; hus < apartmentNum; hus++)
{
if (// If apartment is bigger than what we wish for...
apartments[hus] >= (applicants[man] - maxDiff)
// But smaller than we dont want.
&& apartments[hus] <= (applicants[man] + maxDiff))
{
found++;
current_hus = hus + 1;
break;
}
// If it doest fit, do nothing.
}
}
// OUTPUT
printf("%i", found);
free(applicants);
free(apartments);
return 0;
}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: ACCEPTED
| 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 |
|---|
| 10 |
Test 4
Verdict: ACCEPTED
| 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 |
|---|
| 10 |
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: ACCEPTED
| input |
|---|
| 200000 200000 10 89 26 46 74 91 19 47 18 83 85 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| 200000 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 1000 71 84 11 90 70 59 60 11 52 65 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| 200000 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 1000000000 21 94 92 4 12 5 38 47 59 92 2 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| 200000 |
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: ACCEPTED
| input |
|---|
| 10 10 1000000000 725746771 537157640 742868604 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| 10 |
Test 13
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 200000 0 375495587 322263536 985991668 ... |
| correct output |
|---|
| 42 |
| user output |
|---|
| (empty) |
Test 14
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 200000 10 906603621 968136956 666786366 ... |
| correct output |
|---|
| 846 |
| user output |
|---|
| (empty) |
Test 15
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 200000 1000 215460174 880023362 242442952 ... |
| correct output |
|---|
| 57149 |
| user output |
|---|
| (empty) |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 1000000000 50349580 773460492 440699400 8... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| 200000 |
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 |
