제출 #1285706

#제출 시각아이디문제언어결과실행 시간메모리
1285706thuhienneCat Exercise (JOI23_ho_t4)C++20
14 / 100
24 ms832 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

#define re exit(0);
#define thuhien ""

int n,perm[309];

int dp[309][309];
bool xd[309][309];

int calc(int l,int r) {
	if (l >= r) return 0;
	if (xd[l][r]) return dp[l][r];
	xd[l][r] = 1;
	
	int curr = l;
	for (int i = l;i <= r;i++) if (perm[i] > perm[curr]) curr = i;
	
	int secondmax = 0;
	for (int i = l;i <= r;i++) if (i != curr && (secondmax == 0 || perm[i] > perm[secondmax])) secondmax = i;
	
	for (int dick = l;dick <= r;dick++) {
		if (dick == curr) {
			if (dick > secondmax) dp[l][r] = max(dp[l][r],calc(l,dick - 1) + dick - secondmax);
			else dp[l][r] = max(dp[l][r],calc(dick + 1,r) + secondmax - dick);
		} else if (dick > curr) {
			dp[l][r] = max(dp[l][r],calc(l,dick - 1));
		} else dp[l][r] = max(dp[l][r],calc(dick + 1,r));
	}
	return dp[l][r];
}

int main() {
  ios_base::sync_with_stdio(0);cin.tie(nullptr);
	if (fopen(thuhien".inp","r")) {
		freopen(thuhien".inp","r",stdin);
		freopen(thuhien".out","w",stdout);
	}

	cin >> n;
	for (int i = 1;i <= n;i++) cin >> perm[i];
	cout << calc(1,n);
}

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:39:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |                 freopen(thuhien".inp","r",stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:40:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |                 freopen(thuhien".out","w",stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...