45852023-03-30 10:17:14gyjazminSípálya (55 pont)cpp11Hibás válasz 0/55483ms6592 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];
            }
            //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;
        }
    }
    //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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/55
1Elfogadva0/03ms1828 KiB
2Hibás válasz0/03ms2020 KiB
3Hibás válasz0/23ms2260 KiB
4Hibás válasz0/23ms2356 KiB
5Hibás válasz0/23ms2564 KiB
6Hibás válasz0/24ms2772 KiB
7Hibás válasz0/34ms2980 KiB
8Hibás válasz0/121ms3148 KiB
9Hibás válasz0/125ms3416 KiB
10Hibás válasz0/128ms3628 KiB
11Hibás válasz0/139ms3580 KiB
12Hibás válasz0/137ms3580 KiB
13Hibás válasz0/183ms3880 KiB
14Hibás válasz0/293ms3948 KiB
15Hibás válasz0/239ms3796 KiB
16Időlimit túllépés0/2474ms4564 KiB
17Időlimit túllépés0/2472ms5596 KiB
18Időlimit túllépés0/2460ms5972 KiB
19Időlimit túllépés0/3467ms6592 KiB
20Időlimit túllépés0/2460ms5200 KiB
21Időlimit túllépés0/2432ms5392 KiB
22Időlimit túllépés0/2476ms5292 KiB
23Időlimit túllépés0/2460ms5396 KiB
24Időlimit túllépés0/2483ms5452 KiB
25Időlimit túllépés0/2474ms5468 KiB
26Időlimit túllépés0/2472ms5616 KiB
27Időlimit túllépés0/2456ms5652 KiB
28Időlimit túllépés0/3472ms5752 KiB
29Időlimit túllépés0/3467ms5948 KiB
30Időlimit túllépés0/3416ms5904 KiB