163862025-04-29 10:40:09BucsMateÖsszegzésekcpp17Accepted 100/10017ms1420 KiB
#include <iostream>

using namespace std;

int sor[200005] = {};

void kovetkezo(int N, int sum)
{
    int temp_sor[200005] = {};
    for(int i = 1; i <= N; i++){
        temp_sor[i] = sor[i];
    }

    int curr_sum = sum;
    int index = N;
    while(curr_sum == sum || temp_sor[index-1] == temp_sor[index]){
        curr_sum -= temp_sor[index];
        index--;
    }
    curr_sum++;
    temp_sor[index]++;
    index++;
    while(curr_sum < sum){
        temp_sor[index] = 1;
        index++;
        curr_sum++;
    }
    curr_sum = 0;
    for(int i = 1; curr_sum < sum; i++){
        cout << temp_sor[i] << " ";
        curr_sum += temp_sor[i];
    }
    cout << endl;
}

void elozo(int N, int sum)
{
    int temp_sor[200005] = {};
    for(int i = 1; i <= N; i++){
        temp_sor[i] = sor[i];
    }

    int curr_sum = sum;
    int index = N;
    while(temp_sor[index] == 1){
        curr_sum--;
        index--;
    }
    temp_sor[index]--;
    curr_sum--;
    index++;
    while(curr_sum < sum){
        if(sum - curr_sum <= temp_sor[index-1]){
            temp_sor[index] = sum - curr_sum;
            break;
        }
        temp_sor[index] = temp_sor[index-1];
        index++;
        curr_sum += temp_sor[index];
    }

    curr_sum = 0;
    for(int i = 1; curr_sum < sum; i++){
        cout << temp_sor[i] << " ";
        curr_sum += temp_sor[i];
    }
    cout << endl;
}

int main()
{
    int N;
    cin >> N;
    int sum = 0;
    for(int i = 1; i <= N; i++){
        cin >> sor[i];
        sum += sor[i];
    }
    if(N == 1){
        cout << "0\n";
    }
    else{
        kovetkezo(N, sum);
    }
    if(N == sum){
        cout << "0\n";
    }
    else{
        elozo(N, sum);
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted2ms1076 KiB
2Accepted2ms1076 KiB
3Accepted3ms1076 KiB
subtask26/6
4Accepted1ms316 KiB
5Accepted2ms1076 KiB
6Accepted2ms1092 KiB
7Accepted2ms1080 KiB
8Accepted2ms1268 KiB
subtask36/6
9Accepted1ms1076 KiB
10Accepted1ms1076 KiB
11Accepted2ms1136 KiB
12Accepted4ms1080 KiB
13Accepted4ms1076 KiB
subtask410/10
14Accepted1ms1076 KiB
15Accepted1ms1076 KiB
16Accepted2ms1136 KiB
17Accepted4ms1080 KiB
18Accepted4ms1076 KiB
19Accepted1ms1076 KiB
20Accepted2ms1076 KiB
21Accepted16ms1324 KiB
22Accepted17ms1328 KiB
23Accepted14ms1420 KiB
subtask510/10
24Accepted2ms1268 KiB
25Accepted2ms1268 KiB
26Accepted2ms1080 KiB
27Accepted2ms1076 KiB
28Accepted2ms1076 KiB
subtask610/10
29Accepted2ms1076 KiB
30Accepted2ms1112 KiB
31Accepted2ms1076 KiB
32Accepted2ms1076 KiB
33Accepted1ms1076 KiB
subtask758/58
34Accepted2ms1268 KiB
35Accepted1ms1076 KiB
36Accepted2ms1272 KiB
37Accepted1ms316 KiB
38Accepted2ms1076 KiB
39Accepted2ms1092 KiB
40Accepted2ms1080 KiB
41Accepted2ms1268 KiB
42Accepted1ms1076 KiB
43Accepted1ms1076 KiB
44Accepted2ms1136 KiB
45Accepted4ms1080 KiB
46Accepted4ms1076 KiB
47Accepted1ms1076 KiB
48Accepted2ms1076 KiB
49Accepted16ms1324 KiB
50Accepted17ms1328 KiB
51Accepted2ms1076 KiB
52Accepted2ms1076 KiB
53Accepted2ms1112 KiB
54Accepted2ms1076 KiB
55Accepted2ms1076 KiB
56Accepted1ms1076 KiB
57Accepted2ms1264 KiB
58Accepted2ms1076 KiB
59Accepted2ms1076 KiB
60Accepted1ms1076 KiB
61Accepted2ms1076 KiB
62Accepted2ms1076 KiB
63Accepted3ms1268 KiB
64Accepted3ms1076 KiB
65Accepted4ms1076 KiB
66Accepted6ms1260 KiB