Submission #485687

#TimeUsernameProblemLanguageResultExecution timeMemory
485687Cross_Ratio만두 (JOI14_ho_t2)C++14
100 / 100
28 ms668 KiB
#include <bits/stdc++.h> #define int long long using namespace std; typedef pair<int,int> P; const int INF = 1e18; signed main() { cin.sync_with_stdio(false); cin.tie(0); cout.tie(0); int N, M; cin >> N >> M; vector<int> A; int i, j, a, b; for(i=0;i<N;i++) { cin >> a; A.push_back(a); } sort(A.begin(),A.end(),[](int x, int y) {return x > y;}); vector<P> B; for(i=0;i<M;i++) { cin >> a >> b; B.push_back(P(a,b)); } vector<int> sA; sA.resize(N+1); for(i=1;i<=N;i++) { sA[i] = sA[i-1] + A[i-1]; } vector<int> C; C.resize(N+1); fill(C.begin(),C.end(),INF); //cout << "C\n"; C[0] = 0; for(j=0;j<M;j++) { for(i=N;i>=0;i--) { int k = min(N,i+B[j].first); C[k] = min(C[k], C[i] + B[j].second); } } int ans = 0; for(i=0;i<=N;i++) { ans = max(ans, sA[i] - C[i]); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...