Submission details
Task:Apartments
Sender:hundlij1
Submission time:2025-09-06 23:01:09 +0300
Language:C++ (C++11)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:8:5: error: 'task2' was not declared in this scope
    8 |     task2();
      |     ^~~~~

Code

#include <iostream>
#include <algorithm>
#include <queue>

using namespace std;

int main() {
    task2();
    return 0;
}

void task1(){
   int n, m;
    cin >> n >> m;
    vector<vector<int>> adj(n+1);
    vector<int> addNodes;

    for(int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }

    bool allfound = false;
    vector<bool> visited(n+1, false);
    
    int start = 1;
    while(!allfound) {
        queue<int> q;

        visited[start] = true;
        q.push(start);

        while (!q.empty()) {
            int s = q.front(); q.pop();
            for (auto u : adj[s]) {
                if (visited[u]) continue;
                visited[u] = true;
                q.push(u);
            }
        }

        allfound = true;
        for(int i = start; i <= n; i++) {
            if(!visited[i]) {
                addNodes.push_back(i);
                allfound = false;
                start = i;
                break;
            }
        }
        /*for( int i = 1; i <= n; i++) {
            cout << i << ": " << visited[i] <<endl;
        }*/
    


}

cout << addNodes.size() << endl;
    for(size_t i = 0; i < addNodes.size(); i++) {
       cout << addNodes[i] << " " << 1 << endl;
    }
    return;
}

void task2(){
    int n, m,k;
    cin >> n >> m >> k;

    vector<int> des(n, 0);
    vector<int> size(m, 0);
    for(int i = 0; i < n; i++) {
       
        cin >> des[i];
    }

    for(int i = 0; i < m; i++) {
       
        cin >> size[i];
    }

    sort(des.begin(), des.end());
    sort(size.begin(), size.end());

    int maxnum = max(n,m);

    int pointerM = 0;
    int pointerN = 0;
    int count = 0;
    for(int i = 0; i < maxnum; i++) {
        if(des[pointerN] <= size[pointerM] + k && des[pointerN] >= size[pointerM] - k) {
            pointerM++;
            pointerN++;
            ++count;
        }
        else if(des[pointerN] > size[pointerM] + k) {
            pointerM++;
        }
        else if(des[pointerN] < size[pointerM] - k) {
            pointerN++;
        }
    }
    cout << count << endl;
    return;
}