105462024-04-04 22:12:49111Az IKPC legerősebb csapatacpp17Hibás válasz 18/10032ms11248 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,K;
	cin>>N>>K;
	vector<int>a(N+1),b(N+1);
	for(int i=1;i<=N;i++){
		cin>>a[i];
	}
	for(int i=1;i<=N;i++){
		cin>>b[i];
	}
	vector<vector<int>>g(N+1);
	vector<int>s;
	for(int i=N;i>=1;i--){
		while(!s.empty()&&a[s.back()]<=a[i]){
			s.pop_back();
		}
		g[s.empty()?0:s.back()].push_back(i);
		s.push_back(i);
	}
	auto dfs=[&](auto self,int i)->vector<int>{
		vector<int>s;
		for(int j:g[i]){
			auto z=self(self,j);
			if(s.size()<z.size()){
				swap(s,z);
			}
			s.insert(s.end(),z.begin(),z.end());
		}
		sort(s.begin(),s.end());
		if(s.empty()){
			s.push_back(b[i]);
		}
		else{
			s.back()+=b[i];
		}
		return s;
	};
	auto ans=dfs(dfs,0);
	cout<<accumulate(max(ans.begin(),ans.end()-K),ans.end(),0ll)<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz3ms1832 KiB
2Elfogadva3ms2052 KiB
subtask20/9
3Hibás válasz3ms2284 KiB
4Hibás válasz3ms2644 KiB
5Hibás válasz3ms2388 KiB
6Hibás válasz3ms2572 KiB
7Hibás válasz3ms2788 KiB
8Hibás válasz3ms3000 KiB
9Hibás válasz3ms3208 KiB
10Hibás válasz3ms3288 KiB
11Hibás válasz3ms3524 KiB
12Hibás válasz3ms3596 KiB
subtask37/7
13Elfogadva3ms3664 KiB
14Elfogadva3ms3984 KiB
15Elfogadva4ms4216 KiB
16Elfogadva4ms4344 KiB
17Elfogadva4ms4424 KiB
18Elfogadva4ms4312 KiB
19Elfogadva4ms4320 KiB
20Elfogadva4ms4372 KiB
21Elfogadva4ms4412 KiB
subtask411/11
22Elfogadva27ms10584 KiB
23Elfogadva28ms10532 KiB
24Elfogadva29ms10528 KiB
25Elfogadva30ms10812 KiB
26Elfogadva30ms10792 KiB
27Elfogadva32ms10716 KiB
subtask50/22
28Hibás válasz4ms4604 KiB
29Hibás válasz4ms4724 KiB
30Hibás válasz4ms4964 KiB
31Hibás válasz4ms4944 KiB
32Hibás válasz4ms5048 KiB
33Hibás válasz4ms5040 KiB
34Hibás válasz4ms5128 KiB
subtask60/51
35Hibás válasz28ms11248 KiB
36Hibás válasz28ms11132 KiB
37Hibás válasz29ms11020 KiB
38Hibás válasz30ms11032 KiB
39Hibás válasz30ms11028 KiB
40Hibás válasz32ms11028 KiB
41Hibás válasz32ms11032 KiB
42Elfogadva32ms11024 KiB
43Elfogadva32ms11028 KiB
44Hibás válasz32ms11024 KiB
45Hibás válasz32ms11020 KiB