| Task: | Apartments |
| Sender: | aalto26bh_046 |
| Submission time: | 2026-09-07 13:40:14 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | WRONG ANSWER | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | TIME LIMIT EXCEEDED | -- | details |
| #6 | TIME LIMIT EXCEEDED | -- | 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 | ACCEPTED | 0.00 s | details |
| #13 | TIME LIMIT EXCEEDED | -- | details |
| #14 | TIME LIMIT EXCEEDED | -- | details |
| #15 | TIME LIMIT EXCEEDED | -- | details |
| #16 | TIME LIMIT EXCEEDED | -- | details |
| #17 | ACCEPTED | 0.04 s | details |
| #18 | ACCEPTED | 0.00 s | details |
| #19 | ACCEPTED | 0.00 s | details |
Code
#include <bits/stdc++.h>
#define fast ios::sync_with_stdio(0); cin.tie(0);
#define fill(arr,val) memset(arr,val,sizeof(arr))
#define FOR(i, a, b) for(__typeof(b) i = a, _b = b; i <= _b; ++i)
#define FORD(i, a, b) for(__typeof(a) i = a, _b = b; i >= _b; --i)
#define ALL(a) (a).begin(), (a).end()
#define YES cout << "YES\n"
#define NO cout << "NO\n"
#define ll long long
#define fi first
#define se second
#define pb push_back
#define pf push_front
#define ii pair<int,int>
#define iii pair<int,pair<int,int>>
#define dq deque<int>
#define nend '\n'
using namespace std;
const ll hashi=2e9+11;
ll add(ll a, ll b) {
return (a+b)%hashi;
}
ll sub(ll a, ll b) {
return ((a-b)%hashi+hashi)%hashi;
}
ll mul(ll a, ll b) {
return (a*b)%hashi;
}
const ll inf=1e18;
const int dx[]={1,0,-1,0};
const int dy[]={0,1,0,-1};
const int N=2e5+3;
int n,m,x,k,l,r,mid;
ll a[N];
int ans=0;
int main() {
///freopen(".INP","r",stdin);
///freopen(".OUT","w",stdout);
fast;
cin >> n >> m >> k;
FOR(i,1,n) cin >> a[i];
sort(a+1,a+1+n);
FOR(i,1,m) {
cin >> x;
l=1; r=n;
int pos1=-1,pos2=-1;
while (l<=r) {
mid = (l+r)>>1;
if (a[mid]>=x) {
pos1=mid;
r=mid-1;
}else l=mid+1;
}
l=1; r=n;
while (l<=r) {
mid = (l+r)>>1;
if (a[mid]<=x) {
pos2=mid;
l=mid+1;
}else r=mid-1;
}
if (pos1!=-1||pos2!=-1) {
bool check1=false,check2=false;
int dis1=abs(a[pos1]-x),dis2=abs(a[pos2]-x);
if (dis1<=k) { ///pos1 valid
check1 = 1;
}
if (dis2<=k) { ///pos2 valid
check2 = 1;
}
if (check1 or check2) {
ans++;
if (check1 and check2) {
if (dis1<=dis2) {
a[pos1]=1e18; ///remove pos1, take pos1
}else a[pos2]=1e18;
}else if (check1 and !check2) {a[pos1]=1e18;
}else if (check2 and !check1) a[pos2]=1e18;
}
sort(a+1,a+1+n);
}
}
cout << ans;
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: WRONG ANSWER
| 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 |
|---|
| 9 |
Feedback: Incorrect character on line 1 col 1: expected "6", got "9"
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: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 200000 0 34 48 12 99 89 71 20 7 9 38 58... |
| correct output |
|---|
| 197286 |
| user output |
|---|
| (empty) |
Test 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 200000 10 89 26 46 74 91 19 47 18 83 85 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| (empty) |
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: 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: 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 |
