제출 #1306564

#제출 시각아이디문제언어결과실행 시간메모리
1306564vehamOlympiads (BOI19_olympiads)C++20
13 / 100
6 ms8256 KiB
#include <bits/stdc++.h> using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; int solve_k1(int N, int C, vvi &S){ auto itr = max_element(S.begin(),S.end(),[](vi &a, vi &b){ return accumulate(a.begin(),a.end(),0) < accumulate(b.begin(),b.end(),0); }); return accumulate(itr->begin(),itr->end(),0); } int solve_k2(int N, int C, vvi &S){ vi H(2e6+1,0); for(int i = 1;i < N;i++){ for(int j = 0;j < i;j++){ H[max(S[i][0],S[j][0]) + max(S[i][1],S[j][1])]++; } } for(int i = 2e6;i >= 0;i--){ if(C - H[i] <= 0) return i; C -= H[i]; } return 0; } int vtoi(vi &v, int K){ int ans = 0; for(int i = 0,p = 1;i < K;i++,p *= 11) ans += p * v[i]; return ans; } vi itov(int a, int K){ vi ans(K); for(int i = 0;i < K;i++,a /= 11) ans[i] = a % 11; return ans; } // int solve_s10(int N, int C, int K, vvi &S){ // int sz = pow(11,K); // vvi dp(K,vi(sz,0)); // for(int i = 0;i < N;i++){ // for(int l = K-1;l;l--){ // } // } // } int main(){ int N,K,C; cin >> N >> K >> C; vvi S(N,vi(K)); for(int i = 0;i < N;i++) for(int j = 0;j < K;j++) cin >> S[i][j]; if(K == 1) cout << solve_k1(N,C,S); else if(K == 2) cout << solve_k2(N,C,S); else cout << -1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...