258152026-03-03 19:26:24algoproRMI eredményekcpp17Hibás válasz 0/1001.1s1868 KiB
// UUID: 2f9bb64b-1c86-4045-b27c-add3ddf7ce29
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;

int main() {
    //vector<long long>v = {1 , 2 , 10};
    //auto it = lower_bound(v.begin() , v.end() , 2);
    //cout << it - v.begin();
    //return 0;
	long long elso , masodik , n;
    cin >> elso >> masodik >> n;
    long long en = elso + masodik;
    vector<long long> a(n) , b(n);
    for(long long i = 0; i < n; i++){
        cin >> a[i];
    }
    for(long long i = 0; i < n; i++){
        cin >> b[i];
    }
    sort(a.begin() , a.end());
    sort(b.begin() , b.end());

    vector<bool> ures(n , 1); // 0 nyitott , 1 foglalt

    long long ans1 = 1 , ans2 = 1;
    for(long long i = 0; i < n; i++){
        long long kene = en - a[i]; // ennel egyel tobb kell
        auto it = upper_bound(b.begin() , b.end() , kene);
        while (it - b.begin() < n && ures[it - b.begin()] == 0) {
            it++;
        }
        if(it - b.begin() == n){
            auto it2 = upper_bound(ures.begin() , ures.end() , 0);
            ures[it2 - ures.begin()] = 0;
        }
        else{
            ures [it - b.begin()] = 0;
            ans2++;
        }
        
    }

    for(long long i = 0; i < n; i++){
        long long kene = en - a[i] + 1; // ennel egyel kevesebb kell
        auto it = lower_bound(b.begin() , b.end() , kene);
        it--;
        while (it - b.begin() >= 0 && ures[it - b.begin()] == 1) {
            it--;
        }
        if(it - b.begin() == -1){
            long long x = n - 1;
            while(ures[x] == 1) {
                x --;
            }
            ures[x] = 1;
            ans1++;
        }
        else{
            ures [it - b.begin()] = 0;
            
        }
        
    }

    cout << ans1 << " " << ans2; // legjobb hely , legrosszabb hely



    // vegigmegy osszes 1. napon
    // keres egy olyan 2. napot ami elottem vegez
    // ha nem talal akkor a legkisebbet veszi el
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms548 KiB
3Elfogadva1ms316 KiB
subtask20/30
4Elfogadva1ms316 KiB
5Elfogadva1ms316 KiB
6Elfogadva1ms316 KiB
7Hibás válasz1ms508 KiB
8Hibás válasz1ms316 KiB
9Hibás válasz1ms316 KiB
10Elfogadva1ms560 KiB
11Elfogadva1ms316 KiB
12Hibás válasz1ms316 KiB
13Hibás válasz1ms316 KiB
subtask30/20
14Elfogadva1ms316 KiB
15Elfogadva1ms316 KiB
16Elfogadva1ms316 KiB
17Hibás válasz1ms508 KiB
18Hibás válasz1ms316 KiB
19Hibás válasz1ms316 KiB
20Elfogadva1ms560 KiB
21Elfogadva1ms316 KiB
22Hibás válasz1ms316 KiB
23Hibás válasz1ms316 KiB
24Hibás válasz1ms316 KiB
25Hibás válasz1ms316 KiB
26Hibás válasz1ms508 KiB
27Hibás válasz1ms316 KiB
28Elfogadva1ms316 KiB
29Hibás válasz1ms388 KiB
30Hibás válasz1ms316 KiB
31Hibás válasz1ms316 KiB
32Elfogadva1ms500 KiB
subtask40/50
33Elfogadva1ms316 KiB
34Elfogadva1ms316 KiB
35Elfogadva1ms508 KiB
36Elfogadva1ms316 KiB
37Elfogadva1ms316 KiB
38Elfogadva1ms316 KiB
39Hibás válasz1ms508 KiB
40Hibás válasz1ms316 KiB
41Hibás válasz1ms316 KiB
42Elfogadva1ms560 KiB
43Elfogadva1ms316 KiB
44Hibás válasz1ms316 KiB
45Hibás válasz1ms316 KiB
46Hibás válasz1ms316 KiB
47Hibás válasz1ms316 KiB
48Hibás válasz1ms508 KiB
49Hibás válasz1ms316 KiB
50Elfogadva1ms316 KiB
51Hibás válasz1ms388 KiB
52Hibás válasz1ms316 KiB
53Hibás válasz1ms316 KiB
54Elfogadva1ms500 KiB
55Elfogadva1ms508 KiB
56Hibás válasz1ms316 KiB
57Elfogadva2ms412 KiB
58Hibás válasz3ms316 KiB
59Hibás válasz78ms524 KiB
60Elfogadva14ms504 KiB
61Elfogadva254ms1868 KiB
62Időlimit túllépés1.1s1076 KiB
63Elfogadva324ms1760 KiB
64Időlimit túllépés1.078s1588 KiB
65Hibás válasz368ms1260 KiB
66Időlimit túllépés1.082s1076 KiB
67Elfogadva150ms1588 KiB
68Elfogadva545ms1748 KiB