Submission #95420

#TimeUsernameProblemLanguageResultExecution timeMemory
95420easrui만두 (JOI14_ho_t2)C++14
0 / 100
152 ms1320 KiB
#include <bits/stdc++.h> using namespace std; const int MM = 1e4+5; const int MN = 505; int M,N,P[MM],S[MM],C[MN],E[MN],ans,res; int D[10*MM][2]; int main() { //freopen("input.txt","r",stdin); ios_base::sync_with_stdio(0),cin.tie(0); cin >> M >> N; for(int i=1; i<=M; i++) cin >> P[i]; sort(P+1,P+M+1,greater<int>()); for(int i=1; i<=M; i++){ S[i] = S[i-1] + P[i]; } for(int i=1; i<=1e5; i++) D[i][0] = D[i][1] = 1e9; for(int i=1; i<=N; i++) cin >> C[i] >> E[i]; for(int i=1; i<=N; i++){ for(int j=1e5; j>=0; j--){ if(j>=C[i]) D[j][i%2] = min(D[j][(i+1)%2],D[j-C[i]][(i+1)%2] + E[i]); if(j!=1e5) D[j][i%2] = min(D[j][i%2],D[j+1][i%2]); } } //cout << D[2][N%2]; for(int i=0; i<=M; i++){ ans = max(ans,S[i]-D[i][N%2]); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...