163852025-04-29 10:38:22BucsMateÖsszegzésekcpp17Hibás válasz 28/10028ms1856 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];
    }
    kovetkezo(N, sum);
    elozo(N, sum);

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva2ms1076 KiB
2Elfogadva2ms1076 KiB
3Elfogadva3ms1076 KiB
subtask20/6
4Hibás válasz25ms1672 KiB
5Részben helyes2ms1076 KiB
6Részben helyes24ms1588 KiB
7Részben helyes23ms1572 KiB
8Részben helyes24ms1504 KiB
subtask33/6
9Részben helyes25ms1588 KiB
10Részben helyes25ms1588 KiB
11Részben helyes25ms1696 KiB
12Részben helyes28ms1840 KiB
13Részben helyes27ms1856 KiB
subtask45/10
14Részben helyes25ms1588 KiB
15Részben helyes25ms1588 KiB
16Részben helyes25ms1696 KiB
17Részben helyes28ms1840 KiB
18Részben helyes27ms1856 KiB
19Elfogadva2ms1076 KiB
20Elfogadva3ms1080 KiB
21Elfogadva16ms1336 KiB
22Elfogadva18ms1332 KiB
23Elfogadva16ms1384 KiB
subtask510/10
24Elfogadva2ms1260 KiB
25Elfogadva2ms1076 KiB
26Elfogadva2ms1260 KiB
27Elfogadva2ms1076 KiB
28Elfogadva2ms1312 KiB
subtask610/10
29Elfogadva1ms1076 KiB
30Elfogadva2ms1084 KiB
31Elfogadva2ms1076 KiB
32Elfogadva2ms1180 KiB
33Elfogadva1ms1076 KiB
subtask70/58
34Elfogadva1ms1076 KiB
35Elfogadva2ms1076 KiB
36Elfogadva2ms1168 KiB
37Hibás válasz25ms1672 KiB
38Részben helyes2ms1076 KiB
39Részben helyes24ms1588 KiB
40Részben helyes23ms1572 KiB
41Részben helyes24ms1504 KiB
42Részben helyes25ms1588 KiB
43Részben helyes25ms1588 KiB
44Részben helyes25ms1696 KiB
45Részben helyes28ms1840 KiB
46Részben helyes27ms1856 KiB
47Elfogadva2ms1076 KiB
48Elfogadva3ms1080 KiB
49Elfogadva16ms1336 KiB
50Elfogadva18ms1332 KiB
51Elfogadva2ms1312 KiB
52Elfogadva1ms1076 KiB
53Elfogadva2ms1084 KiB
54Elfogadva2ms1076 KiB
55Elfogadva2ms1180 KiB
56Elfogadva1ms1076 KiB
57Elfogadva2ms1076 KiB
58Elfogadva2ms1076 KiB
59Elfogadva1ms1076 KiB
60Elfogadva1ms1076 KiB
61Elfogadva2ms1192 KiB
62Elfogadva2ms1076 KiB
63Elfogadva3ms1100 KiB
64Elfogadva3ms964 KiB
65Elfogadva4ms1232 KiB
66Elfogadva6ms1076 KiB