답안 #100172

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
100172 2019-03-09T18:21:22 Z pamaj Rima (COCI17_rima) C++14
14 / 140
72 ms 20072 KB
#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e3;

int dp[maxn][maxn], n;
vector<string> s;

bool rhyme(const string& a, const string& b)
{
	int u = a.size() - 1, v = b.size() - 1;

	int cont = 0;
	while(a[u] == b[v] and u >= 0 and v >= 0)
	{
		cont++, u--, v--;
	}

	if(cont >= max(a.size(), b.size()) - 1) return true;
	return false;
}

int solve(int i, int j)
{

	if(dp[i][j] != -1) return dp[i][j];

	if(i == n) return 0;

	int caso1 = solve(i + 1, j);
	int caso2;

	if(rhyme(s[i],s[j]))
	{
		caso2 = solve(i + 1, i) + 1;
	}
	else 
		caso2 = 0;


	return dp[i][j] = max(caso1, caso2);
}

int main()
{
	ios::sync_with_stdio(false), cin.tie(nullptr);

	cin >> n;

	for(int i = 0; i < n; i++)
	{
		string a;
		cin >> a;
		s.push_back(a);
	}

	memset(dp, -1, sizeof(dp));

	cout << solve(0, 0) << "\n";
}

Compilation message

rima.cpp: In function 'bool rhyme(const string&, const string&)':
rima.cpp:19:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if(cont >= max(a.size(), b.size()) - 1) return true;
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 4224 KB Output isn't correct
2 Correct 5 ms 4224 KB Output is correct
3 Incorrect 5 ms 4224 KB Output isn't correct
4 Incorrect 72 ms 20072 KB Output isn't correct
5 Incorrect 15 ms 7296 KB Output isn't correct
6 Incorrect 9 ms 4976 KB Output isn't correct
7 Incorrect 10 ms 4856 KB Output isn't correct
8 Incorrect 9 ms 4792 KB Output isn't correct
9 Incorrect 23 ms 8180 KB Output isn't correct
10 Incorrect 8 ms 4828 KB Output isn't correct