146182025-01-20 21:10:59mateMaximális szorzat (50 pont)cpp17Hibás válasz 4/5078ms1268 KiB
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;

const long long MOD = 1000000007;

int main() {
	int n,k,b; cin >> n >> k >> b;
	vector <long long> v(n,0);
	int neg = 0;
	for(int i = 0; i < n; i++){
		cin >> v[i];
		if(v[i] < 0){
			neg++;
		}
	}
	sort(v.begin(),v.end());
	int index = lower_bound(v.begin(),v.end(),0) - v.begin();
	int jindex = index;
	bool vege = 0;
	cerr << index;
	for(int i = index; k > 0; i--){
		if(neg <= b){
			vege = 1;
			jindex = i;
			break;
		}
		while(v[i] < 0 && k > 0){
			v[i]++;
			k--;
		}
		neg--;
		
	}

	if(!vege){
		cout << -1;
		exit(0);
	}
	bool ugras = 0;
	for(int i = jindex; k > 0; i++){
		//v[i]++;
		//k--;
		//cout << v[i] << ' ';
		while(v[i] <= v[i+1] && k > 0){
			v[i]++;
			k--;
			ugras = 1;
		}
		if(ugras){
			ugras = 0;
			i = jindex;
		}
		
	}
	long long ans = 1;
	for(int i = 0; i < n; i++){
		ans *= abs(v[i]) % MOD;
		ans %= MOD;
		//cout << v[i] << ' ';
	}
	
	cout << ans;
	
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms508 KiB
3Hibás válasz0/01ms316 KiB
4Elfogadva0/01ms316 KiB
5Hibás válasz0/04ms364 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms508 KiB
9Hibás válasz0/21ms412 KiB
10Hibás válasz0/24ms316 KiB
11Hibás válasz0/252ms1080 KiB
12Hibás válasz0/156ms1076 KiB
13Hibás válasz0/12ms316 KiB
14Hibás válasz0/18ms316 KiB
15Elfogadva1/119ms808 KiB
16Hibás válasz0/172ms800 KiB
17Elfogadva1/120ms568 KiB
18Elfogadva1/19ms564 KiB
19Futási hiba0/159ms1076 KiB
20Futási hiba0/148ms1200 KiB
21Futási hiba0/175ms1076 KiB
22Futási hiba0/141ms1192 KiB
23Hibás válasz0/159ms1076 KiB
24Hibás válasz0/156ms1076 KiB
25Hibás válasz0/21ms508 KiB
26Hibás válasz0/24ms316 KiB
27Futási hiba0/232ms808 KiB
28Futási hiba0/132ms800 KiB
29Hibás válasz0/241ms564 KiB
30Futási hiba0/176ms1200 KiB
31Elfogadva1/141ms1268 KiB
32Hibás válasz0/271ms316 KiB
33Futási hiba0/275ms1268 KiB
34Hibás válasz0/159ms1268 KiB
35Hibás válasz0/259ms1076 KiB
36Futási hiba0/278ms1200 KiB
37Futási hiba0/278ms1196 KiB
38Futási hiba0/278ms1076 KiB
39Hibás válasz0/165ms316 KiB