1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// tek-tekstowka-brut.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
//

#include <iostream>
#include <algorithm>

constexpr int MAXN = 3007;

int dp[MAXN][MAXN];

int main()
{
	std::ios_base::sync_with_stdio(0);
	std::cin.tie(0);
	std::cout.tie(0);
	int n, m, q, a, b, x, y, c, z;
	std::string s1, s2;
	std::cin >> n >> m >> q >> s1 >> s2;
	while (q--)
	{
		std::cin >> a >> b >> x >> y;
		for (c = a; c <= b; c++)
		{
			dp[c][x - 1] = 0;
		}
		dp[a - 1][x - 1] = 0;
		for (z = x; z <= y; z++)
		{
			dp[a - 1][z] = 0;
		}
		for (c = a; c <= b; c++)
		{
			for (z = x; z <= y; z++)
			{
				dp[c][z] = std::max(std::max(dp[c - 1][z], dp[c][z - 1]), dp[c-1][z-1]+ (s1[c-1] == s2[z-1]));
			}
		}
		std::cout << dp[b][y] << '\n';
	}
}

// Uruchomienie programu: Ctrl + F5 lub menu Debugowanie > Uruchom bez debugowania
// Debugowanie programu: F5 lub menu Debugowanie > Rozpocznij debugowanie

// Porady dotyczące rozpoczynania pracy:
//   1. Użyj okna Eksploratora rozwiązań, aby dodać pliki i zarządzać nimi
//   2. Użyj okna programu Team Explorer, aby nawiązać połączenie z kontrolą źródła
//   3. Użyj okna Dane wyjściowe, aby sprawdzić dane wyjściowe kompilacji i inne komunikaty
//   4. Użyj okna Lista błędów, aby zobaczyć błędy
//   5. Wybierz pozycję Projekt > Dodaj nowy element, aby utworzyć nowe pliki kodu, lub wybierz pozycję Projekt > Dodaj istniejący element, aby dodać istniejące pliku kodu do projektu
//   6. Aby w przyszłości ponownie otworzyć ten projekt, przejdź do pozycji Plik > Otwórz > Projekt i wybierz plik sln