Submission #941931

#TimeUsernameProblemLanguageResultExecution timeMemory
941931ErJLet's Win the Election (JOI22_ho_t3)C++17
0 / 100
2604 ms108352 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define vi vector<ll> #define vvi vector<vector<ll>> #define vs vector<string> #define vc vector<char> #define vb vector<bool> #define vp vector<pair<ll, ll>> #define pp pair<ll, ll> #define qi queue<ll> #define qp queue<pp> #define pqi priority_queue<ll> #define pqp priority_queue<pp> #define mi map<ll, ll> #define mpi map<pp, ll> #define mip map<ll, pp> #define mpp map<pp, pp> #define mb map<ll, bool> #define si set<ll> #define sp set<pp> #define mod 1000000007 #define rep(a, b) for(int a = 0; a < (b); a++) #define rep2(a, b) for(int a = 1; a < (b); a++) #define inf 1000000000000000000 vi A, B; vp C; ll n, k; double solve(ll m) { vector<vector<vector<double>>> dp(n); rep(i, n) { dp[i].resize(k + 1); rep(j, dp[i].size()) { dp[i][j].resize(m + 1); rep(l, dp[i][j].size()) { dp[i][j][l] = inf; } } } dp[0][0][0] = 0; dp[0][1][0] = C[0].second; dp[0][1][1] = C[0].first; for (int i = 1; i < dp.size(); i++) { rep(j, dp[i].size()) { rep(l, dp[i][j].size()) { dp[i][j][l] = dp[i - 1][j][l]; if (j > 0) { dp[i][j][l] = min(dp[i][j][l], dp[i - 1][j - 1][l] + 1.0 * C[i].second / (m + 1)); if (l > 0) { dp[i][j][l] = min(dp[i][j][l], dp[i - 1][j - 1][l - 1] + 1.0 * C[i].first / (l)); } } } } } return dp[n - 1][k][m]; } int main() { cin >> n >> k; A.resize(n); B.resize(n); C.resize(n); rep(i, n) { cin >> A[i] >> B[i]; if (B[i] == -1) { B[i] = inf; } C[i] = { B[i], A[i] }; } sort(C.begin(), C.end()); double MIN = 19811595300000.95; rep(i, k) { MIN = min(MIN, solve(i + 1)); } sort(A.begin(), A.end()); double ans1 = 0; rep(i, k) { ans1 += A[i]; } MIN = min(MIN, ans1); cout << fixed << MIN << endl; }

Compilation message (stderr)

Main.cpp: In function 'double solve(long long int)':
Main.cpp:24:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 | #define rep(a, b) for(int a = 0; a < (b); a++)
      |                                    ^
Main.cpp:37:9: note: in expansion of macro 'rep'
   37 |         rep(j, dp[i].size()) {
      |         ^~~
Main.cpp:24:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 | #define rep(a, b) for(int a = 0; a < (b); a++)
      |                                    ^
Main.cpp:39:13: note: in expansion of macro 'rep'
   39 |             rep(l, dp[i][j].size()) {
      |             ^~~
Main.cpp:47:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<std::vector<double> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     for (int i = 1; i < dp.size(); i++) {
      |                     ~~^~~~~~~~~~~
Main.cpp:24:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 | #define rep(a, b) for(int a = 0; a < (b); a++)
      |                                    ^
Main.cpp:48:9: note: in expansion of macro 'rep'
   48 |         rep(j, dp[i].size()) {
      |         ^~~
Main.cpp:24:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 | #define rep(a, b) for(int a = 0; a < (b); a++)
      |                                    ^
Main.cpp:49:13: note: in expansion of macro 'rep'
   49 |             rep(l, dp[i][j].size()) {
      |             ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...