답안 #827192

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
827192 2023-08-16T09:44:39 Z OAleksa Baloni (COCI15_baloni) C++14
0 / 100
100 ms 131072 KB
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std; 
#define int long long
const int maxn = 1e6 + 69;
vector<int> g[maxn], vis(maxn), cnt(maxn, -1);

void dfs(int v) {
	vis[v] = 1;
	for(auto u : g[v]) {
		if(!vis[u])
			dfs(u);
	}
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int tt = 1;
	//cin >> tt;
	while(tt--) {
		int n;
		cin >> n;
		vector<int> a(n);
		for(int i = 0;i < n;i++)
			cin >> a[i];
		int dp[n][n];
		for(int i = 0;i < n;i++)
			for(int j = 0;j < n;j++)
				dp[i][j] = 1e9;
		for(int i = 0;i < n;i++)
			dp[i][i] = 1;
		for(int i = 1;i < n;i++) {
			for(int l = 0, r = i;r < n;l++, r++) {
				dp[l][r] = min(dp[l + 1][r] + 1, dp[l][r]);
				dp[l][r] = min(dp[l][r - 1] + 1, dp[l][r]);
				if(a[r - 1] == a[r] + 1)
					dp[l][r] = min(dp[l][r], dp[l][r - 1]);
				if(a[l] == a[l + 1] + 1)
					dp[l][r] = min(dp[l][r], dp[l + 1][r]);
				if(r - l >= 2 && a[l] == a[r] + 1)
					dp[l][r] = min(dp[l][r], dp[l + 1][r - 1] + 1);
			}
		}
		cout << dp[0][n - 1];
	}
   return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 47288 KB Output isn't correct
2 Incorrect 36 ms 70788 KB Output isn't correct
3 Runtime error 48 ms 131072 KB Execution killed with signal 9
4 Runtime error 46 ms 131072 KB Execution killed with signal 9
5 Runtime error 89 ms 131072 KB Execution killed with signal 9
6 Runtime error 94 ms 131072 KB Execution killed with signal 9
7 Runtime error 79 ms 131072 KB Execution killed with signal 9
8 Runtime error 83 ms 131072 KB Execution killed with signal 9
9 Runtime error 84 ms 131072 KB Execution killed with signal 9
10 Runtime error 100 ms 131072 KB Execution killed with signal 9