# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
619770 | CoolRabbitXT | Financial Report (JOI21_financial) | C++14 | 4059 ms | 1048576 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int n, d;
vector <int> arr;
int current_max;
int solve(int indx, int maxi){
vector <int> options;
options.resize(d);
int condition;
int best_option = 0;
int best_indx;
int the_max = 0;
//Esta DP va a recorrer el arreglo para atrás, utilizando los minimos.
//Caso base:
if(indx == n-1) {
if(arr[indx] > maxi) return 1;
else return 0;
}
//!importante! recuerda mirar que indx + i < n
//Caso recursivo:
if(arr[indx+1] > maxi){
condition = 1;
the_max = arr[indx+1];
}
else {
the_max = maxi;
condition = 0;
}
return solve(indx + 1, the_max) + condition;
}
int main(){
cin >> n >> d;
arr.resize(n);
for(int i = 0; i<n; i++){
cin >> arr[i];
}
for(int i = 0; i<n; i++){
//cout << "for indx: " << i << ": " << solve(i, arr[i]) << endl;
if(solve(i, arr[i]) > current_max) {
current_max = solve(i, arr[i]);
}
}
cout << current_max + 1;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |