162482025-04-15 20:22:38RRoliModern Artcpp17Hibás válasz 5/10010ms1284 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
    cin >> n;
    vector<pair<pair<unsigned long long,unsigned long long>,unsigned long long>> v(n), sor;
    vector<unsigned long long> pos(n), size(n);
    for(int i = 0; i < n; i++) cin >> pos[i];
    for(int i = 0; i < n; i++) cin >> size[i];
    for(int i = 0; i < n; i++) v[i] = make_pair(make_pair(pos[i]-size[i], pos[i]+size[i]), size[i]*2);
    sort(v.begin(), v.end());

    //for(auto i : v) cout << i.first.first << ' ' << i.first.second << ' ' << i.second << '\n';
    sor.push_back(v[0]);
    for(int i = 1; i < n; i++) {
        if(v[i].first.second > sor[sor.size()-1].first.second) {
            if(v[i].first.first == sor[sor.size()-1].first.first && v[i].second > sor[sor.size()-1].second) {
                sor[sor.size()-1] = v[i];
            } else if(v[i].first.first >= sor[sor.size()-1].first.second) {
                sor.push_back(v[i]);
            } else if(v[i].second >= sor[sor.size()-1].second) {
                sor[sor.size()-1].first.second = v[i].first.first;
                sor.push_back(v[i]);
            } else if(v[i].second < sor[sor.size()-1].second) {
                sor.push_back(v[i]);
                sor[sor.size()-1].first.first = sor[sor.size()-2].first.second;
            }
        }
    }

    unsigned long long s = 0;
    for(auto i : sor) s += (i.first.second-i.first.first)*i.second;
    //cout << i.first.first << ' ' << i.first.second << ' ' << i.second << '\n';
    
    cout << s;

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms508 KiB
subtask25/5
3Elfogadva4ms564 KiB
4Elfogadva4ms708 KiB
5Elfogadva6ms972 KiB
6Elfogadva8ms1076 KiB
7Elfogadva8ms1272 KiB
8Elfogadva8ms976 KiB
9Elfogadva7ms960 KiB
10Elfogadva1ms508 KiB
subtask30/15
11Elfogadva1ms316 KiB
12Elfogadva1ms552 KiB
13Hibás válasz1ms316 KiB
14Hibás válasz1ms316 KiB
15Hibás válasz1ms316 KiB
16Hibás válasz1ms320 KiB
17Hibás válasz1ms604 KiB
18Hibás válasz1ms316 KiB
19Hibás válasz1ms316 KiB
subtask40/30
20Hibás válasz1ms512 KiB
21Elfogadva1ms508 KiB
22Elfogadva1ms316 KiB
23Hibás válasz2ms316 KiB
24Elfogadva1ms392 KiB
25Hibás válasz1ms508 KiB
26Elfogadva1ms316 KiB
27Hibás válasz1ms316 KiB
28Hibás válasz2ms316 KiB
subtask50/50
29Elfogadva1ms316 KiB
30Hibás válasz2ms316 KiB
31Hibás válasz3ms360 KiB
32Hibás válasz6ms656 KiB
33Hibás válasz6ms564 KiB
34Hibás válasz3ms316 KiB
35Hibás válasz8ms820 KiB
36Hibás válasz3ms508 KiB
37Hibás válasz9ms768 KiB
38Hibás válasz9ms756 KiB
39Hibás válasz1ms316 KiB
40Hibás válasz9ms1256 KiB
41Elfogadva8ms1284 KiB
42Hibás válasz9ms1256 KiB
43Hibás válasz9ms1256 KiB
44Elfogadva10ms1252 KiB
45Elfogadva10ms1268 KiB