123392024-12-12 19:46:33szasztundeSípálya (55 pont)cpp17Hibás válasz 0/55136ms7480 KiB
#include <iostream>
#include <vector>
#include <map>
using namespace std;

int main() {
	int n;
	cin>>n;
	int k;
	cin>>k;
	vector<long long> szm(n);
	vector<long long> pref(n);
	long long ossz=0;
	long long megold=0;
	long long megoldas=0;
	map<long long, int> vmi; // szám -> hány darab
	for(int i=0; i<n; i++){
		int a;
		cin>>a;
		ossz+=a+i;
		pref[i]=ossz;
		szm[i]=a+i;
	}
	for(int i=0; i<k; i++){
		vmi[szm[i]] += 1;
	}
	for(int i=0; i<n; i++) cout<<szm[i]<<" ";
	cout<<endl;
	for(int i=0; i<n; i++) cout<<pref[i]<<" ";
	cout<<endl;
	map<long long, int>::iterator it;
	for(it=vmi.begin();it!=vmi.end();it++)
        cout<<it->first<<"-"<<it->second<<"  ";
    cout<<endl;
	it = vmi.end();
	it--;
	megoldas=(k*it->first)-pref[k-1];
	for(int i=k; i<n; i++){
		vmi[szm[i-k]] -= 1;
		if(vmi[szm[i-k]] == 0) vmi.erase(szm[i-k]);
		vmi[szm[i]]+=1;
		it = vmi.end();
		it--;
		megold=(k*it->first)-pref[i]+pref[i-k];
		if(megold<megoldas){
			megoldas=megold;
		}
	}
	cout<<megoldas;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/55
1Hibás válasz0/01ms500 KiB
2Hibás válasz0/01ms508 KiB
3Hibás válasz0/22ms320 KiB
4Hibás válasz0/22ms320 KiB
5Hibás válasz0/22ms320 KiB
6Hibás válasz0/22ms320 KiB
7Hibás válasz0/32ms320 KiB
8Hibás válasz0/19ms644 KiB
9Hibás válasz0/19ms568 KiB
10Hibás válasz0/19ms756 KiB
11Hibás válasz0/17ms568 KiB
12Hibás válasz0/17ms572 KiB
13Hibás válasz0/17ms596 KiB
14Hibás válasz0/27ms560 KiB
15Hibás válasz0/27ms560 KiB
16Hibás válasz0/2128ms7136 KiB
17Hibás válasz0/2129ms7132 KiB
18Hibás válasz0/2128ms7392 KiB
19Hibás válasz0/3130ms7404 KiB
20Hibás válasz0/2133ms7392 KiB
21Hibás válasz0/2129ms7388 KiB
22Hibás válasz0/2128ms7224 KiB
23Hibás válasz0/2131ms7392 KiB
24Hibás válasz0/2136ms7480 KiB
25Hibás válasz0/2133ms7396 KiB
26Hibás válasz0/2133ms7392 KiB
27Hibás válasz0/2130ms7228 KiB
28Hibás válasz0/3130ms7224 KiB
29Hibás válasz0/3128ms7228 KiB
30Hibás válasz0/3133ms7480 KiB