46302023-03-30 13:10:09gyjazminSípálya (55 pont)cpp11Wrong answer 10/55483ms6912 KiB
#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    iostream::sync_with_stdio(0);
    cin.tie(0);
    //beolvasas
    int n;
    int k;
    cin >> n >> k;
    //vector<int> elsop(n);
    vector<int> hegycsucsok(n);
    for (int i=0;i<n;i++){
        cin >> hegycsucsok[i];
    }
    /*//petakokba szamolas ha hegycsucsok[i]>hegycsucsok[i+1]
    for(int i=0;i<n;i++){
        if(i+k<=n&& hegycsucsok[i]>hegycsucsok[i+1]){
            int elozo= hegycsucsok[i];
            for(int j=i+1;j<i+k;j++){
                int cv=hegycsucsok[j];
                int pontok;
                while(cv!= elozo-1){
                    pontok++;
                    cv++;
                }
                elsop[i]+=pontok;
                elozo= hegycsucsok[j]+pontok;hegycsucsok[j]
            }
        }
    }*/
    vector<int> petakok(n);
    //masik remelhetoleg mindenre jo modszer(csak bitanglassú)
    for(int i=0;i<n;i++){
        if(i+k<=n){
            //feltolteni a vektort es megszamolni az osszeget
            vector<int> cvektor;
            int alapsum=0;
            for(int j=i;j<i+k;j++){
                cvektor.push_back(hegycsucsok[j]);
                alapsum += hegycsucsok[j];
            }
            //masodik megoldas
            int pontok=0;
            int cv=0;
            int eddigvizsgaltakszama=1;
              //legutolsoval felpotolni mindegyiket
            cv = cvektor[cvektor.size()-1]+1;
            for(int l=cvektor.size()-2;l>=0;l--){
                    if(cvektor[l]<cv){
                        pontok += cv-cvektor[l];
                        //cvektor[l]=cv;
                        cv++;
                    }
                    else if(cvektor[l]>cv){
                        int mennyivelnagyobb = cvektor[l]-cv;
                        pontok += eddigvizsgaltakszama*mennyivelnagyobb;
                        cv = cvektor[l]+1;
                    }
                    eddigvizsgaltakszama++;
            }
            //petakokat beallitani
            petakok[i]=pontok;

           /* for(int j=cvektor.size()-2;j>0;j--){
                cv = cvektor[j];
                for(int l=j-1;l>0;l--){
                    if(cvektor[l]<cv){
                        pontok += cv-cvektor[l];
                        cvektor[l]=cv;
                    }
                }

            }
            //elso kivalasztani a legnagyobb helyet es erteket
            /*int cv=0;
            int maxe=0;
            int maxi=0;
            while(cv<k){
                if(cvektor[cv]>maxe){
                    maxe = cvektor[cv];
                    maxi = cv;
                }
                cv++;
            }
            //kiszamolni a szukseges sumot
            int szuksegessum=0;
            szuksegessum+= maxe;
               //a maxitol elore
            for(int j=1;j<maxi+1;j++){
                szuksegessum+=maxe+j;
            }
               //a maxitol hatra
            for(int j=1;j<k-maxi;j++){
                szuksegessum+=maxe-1;
            }
            //kiszamolni a petakok szamat
            petakok[i]=szuksegessum-alapsum;
            cout << szuksegessum<< endl;*/
        }
    }
    //legkisebb megtalalasa,kiiras
    int cv=0;
    int mine= INT_MAX;
    while(cv+k<=n){
        if(petakok[cv]<mine){
            mine=petakok[cv];
        }
        cv++;
    }
    cout << mine << endl;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base10/55
1Accepted0/03ms1828 KiB
2Accepted0/03ms1916 KiB
3Accepted2/23ms2128 KiB
4Accepted2/23ms2344 KiB
5Accepted2/24ms2556 KiB
6Accepted2/24ms2772 KiB
7Wrong answer0/33ms2848 KiB
8Wrong answer0/123ms3180 KiB
9Accepted1/126ms3136 KiB
10Accepted1/130ms3396 KiB
11Wrong answer0/139ms3348 KiB
12Wrong answer0/139ms3608 KiB
13Wrong answer0/186ms3844 KiB
14Wrong answer0/298ms4148 KiB
15Wrong answer0/241ms4120 KiB
16Time limit exceeded0/2458ms4960 KiB
17Time limit exceeded0/2456ms5944 KiB
18Time limit exceeded0/2460ms5904 KiB
19Time limit exceeded0/3472ms6912 KiB
20Time limit exceeded0/2456ms5712 KiB
21Time limit exceeded0/2470ms5512 KiB
22Time limit exceeded0/2463ms5796 KiB
23Time limit exceeded0/2467ms5756 KiB
24Time limit exceeded0/2483ms5856 KiB
25Time limit exceeded0/2472ms6104 KiB
26Time limit exceeded0/2479ms6196 KiB
27Time limit exceeded0/2460ms6280 KiB
28Time limit exceeded0/3479ms6148 KiB
29Time limit exceeded0/3483ms6440 KiB
30Time limit exceeded0/3476ms6648 KiB