201052026-01-01 21:18:35szabelrDarabolás (50 pont)cpp17Accepted 50/5041ms1320 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int m, n;
    if (!(cin >> m >> n)) return 0;

    // FIX 1: Correct size is m-1 and n-1
    vector<int> s1(m - 1);
    vector<int> s2(n - 1);

    // Use long long for sums to prevent overflow
    long long s1_sum = 0, s2_sum = 0;

    for (int i = 0; i < m - 1; i++)
    {
        cin >> s1[i];
        s1_sum += s1[i];
    }
    for (int i = 0; i < n - 1; i++)
    {
        cin >> s2[i];
        s2_sum += s2[i];
    }

    sort(s1.rbegin(), s1.rend());
    sort(s2.rbegin(), s2.rend());

    int i = 0, y = 0;
    long long sum = 0; // FIX 2: long long

    while (i < s1.size() || y < s2.size())
    {
        // FIX 3: Safe condition. 
        // We pick s1 if:
        // 1. s2 is empty (y >= s2.size())
        // OR
        // 2. s1 is NOT empty AND s1 is bigger
        if (y >= s2.size() || (i < s1.size() && s1[i] > s2[y]))
        {
            sum += s1[i] + s2_sum;
            s1_sum -= s1[i];
            i++;
        }
        else
        {
            sum += s2[y] + s1_sum;
            s2_sum -= s2[y];
            y++;
        }
    }
    cout << sum;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/023ms1012 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted1/11ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms316 KiB
8Accepted1/11ms316 KiB
9Accepted1/11ms508 KiB
10Accepted1/11ms316 KiB
11Accepted1/11ms316 KiB
12Accepted1/11ms316 KiB
13Accepted1/11ms420 KiB
14Accepted1/11ms500 KiB
15Accepted1/11ms316 KiB
16Accepted1/11ms316 KiB
17Accepted1/11ms316 KiB
18Accepted1/13ms316 KiB
19Accepted2/21ms316 KiB
20Accepted2/21ms316 KiB
21Accepted3/33ms464 KiB
22Accepted3/34ms500 KiB
23Accepted4/412ms568 KiB
24Accepted4/412ms564 KiB
25Accepted4/423ms820 KiB
26Accepted4/423ms820 KiB
27Accepted4/441ms1320 KiB
28Accepted4/439ms1076 KiB