답안 #594661

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
594661 2022-07-12T19:25:19 Z 1ne Let's Win the Election (JOI22_ho_t3) C++14
0 / 100
1076 ms 8808 KB
#include<bits/stdc++.h>
using namespace std;

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	double long n,k;cin>>n>>k;
	vector<pair<double long,double long>>arr,temp;
	for (int i = 0;i<n;++i){
		double long x,y;cin>>x>>y;
		if (y == -1){
			y = 1e7;
		}
		arr.push_back({x,y});
	}
	sort(arr.begin(),arr.end(),[&](auto x,auto y){
		if (x.second == y.second)return x.first < y.first;
		return x.second < y.second;
	});
	for (auto x:temp)arr.push_back(x);
	double long mxn = 1e15;
	vector<vector<double long>>dp(n + 1,vector<double long>(n + 1,mxn));
	dp[0][0] = 0.0;
	for (int i = 0;i<n;++i){
		vector<vector<double long>>cur_dp(n + 1,vector<double long>(n + 1,mxn));
		for (int j = 0;j<=i;++j){
			for (int p = 0;p <= j + 1;++p){
				cur_dp[j][p] = min(cur_dp[j][p],dp[j][p]);
				cur_dp[j + 1][p + 1] = min(cur_dp[j + 1][p + 1],dp[j + 1][p + 1]);
				cur_dp[j + 1][p] = min(cur_dp[j + 1][p],dp[j + 1][p]);
				if (arr[i].second!=-1){
					cur_dp[j + 1][p + 1] = min(dp[j][p] + (double long)(arr[i].second / (p + 1)),cur_dp[j + 1][p + 1]);
				}
				cur_dp[j + 1][p] =  min(cur_dp[j + 1][p],dp[j][p] + (double long)(arr[i].first / (p + 1)));
			}
		}
		swap(cur_dp,dp);
	}
	double long ans = mxn;
	for (int i = 0;i<=n;++i){
		ans = min(ans,dp[k][i]);
	}
	cout<<fixed<<setprecision(15)<<ans<<'\n';
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Runtime error 1 ms 468 KB Execution killed with signal 6
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Runtime error 1 ms 468 KB Execution killed with signal 6
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 468 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 468 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 468 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1076 ms 8808 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Runtime error 1 ms 468 KB Execution killed with signal 6
3 Halted 0 ms 0 KB -