답안 #833342

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
833342 2023-08-22T04:44:30 Z vjudge1 Exam (eJOI20_exam) C++17
0 / 100
4 ms 1108 KB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define fi first
#define se second

const ll N = 1e5+10;

ll n,ans;
ll temp1,temp2;
ll memo[N];
ll h[N],t[N];
bool vis[N];

void sub2() {
	for(int i=1; i<=n; i++) {
		if(h[i] == t[1]) {
			for(int j=i-1; j>=1; j--) {
				if(vis[j]) break;
				if(h[j] < h[i]) {
					h[j] = h[i];
					vis[j] = true;
				}
				else break;
			}
			for(int j=i+1; j<=n; j++) {
				if(vis[j]) break;
				if(h[j] < h[i]) {
					h[j] = h[i];
					vis[j] = true;
				}
				else break;
			}
		}
	}
	for(int i=1; i<=n; i++) if(h[i] == t[i]) ans++;
	cout << ans << endl;
}

ll dp(ll idx) {
	if(idx == 0) return 0;
	if(memo[idx] == -1) {
		ll var = 0;
		for(int i=idx; i>=1; i--) {
			if(h[idx] == t[i]) var++;
			memo[idx] = max(memo[idx],dp(i-1)+var);
		}
	}
	return memo[idx];
}

int main() {
	memset(memo,-1,sizeof(memo));
	cin >> n;
	for(int i=1; i<=n; i++) {
		cin >> h[i];
		if(i > 1 && h[i] > h[i-1]) temp1++;
	}
	for(int i=1; i<=n; i++) {
		cin >> t[i];
		if(i > 1 && t[i] == t[i-1]) temp2++;
	}
//	if(temp2 == n-1) {
//		sub2();
//		return 0;
//	}
	if(temp1 == n-1) cout << dp(n) << endl;
//	if(n <= 10) {
//		for(int i=1; i<=n; i++) {
//			bool b = true;
//			ll temp = 0;
//			for(int j=1; j<=i-1; j++) {
//				if(a[i] < a[j]) {
//					b = false;
//					break;
//				}
//				else if(h[i] == t[i]) {
//					temp++;
//				}
//			}
//			if(b) {
//				ans = max(ans,dp(i) + temp);
//			}
//		}
//	}
}

/*
3
1 2 4
2 2 3
*/
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 980 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1108 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 980 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 1108 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 980 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 980 KB Output isn't correct
2 Halted 0 ms 0 KB -