Submission #3671

#TimeUsernameProblemLanguageResultExecution timeMemory
3671BothEarRimKing of penalty (kriii1_K)C++98
1 / 1
24 ms2448 KiB
#include <iostream> #include <iomanip> #include <cstdio> #include <string> #include <cstring> #include <cstdlib> #include <cmath> #include <utility> #include <locale> #include <algorithm> #include <vector> #include <queue> #include <stack> #include <list> #include <set> #include <climits> #include <cfloat> #define PI acos(0.0) * 2.0 using namespace std; vector<long long> needTime; // 각 문제를 해결하는 데 필요한 시간 long long contestTotTime, prob_N; // 대회 전체 시간, 문제 개수 long long solved_N, penalty_tot; // 푼 문제 개수, 페널티 총합 int main() { scanf("%lld %lld",&contestTotTime, &prob_N); contestTotTime--; // 대회 종료순간에는 문제를 제출 못하므로 아예 가진 시간을 1분 줄여 생각한다 needTime.resize(prob_N); for(long long i=0; i<prob_N; i++) scanf("%lld", &needTime[i]); sort(needTime.begin(), needTime.end()); // 정렬해서 걸리는 시간이 작은 문제부터 greedy하게 살펴볼 것임 for(long long i=0, pnt=contestTotTime; i<prob_N && pnt-needTime[i]>=0;) { solved_N++; penalty_tot += pnt; // 대회 시작부터 현재 pnt까지의 시간 pnt -= needTime[i++]; } printf("%lld %lld\n", solved_N, penalty_tot); }
#Verdict Execution timeMemoryGrader output
Fetching results...