QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#734534#7780. Dark LaTeX vs. Light LaTeXacb437WA 48ms297616kbC++141.6kb2024-11-11 12:16:342024-11-11 12:16:35

Judging History

This is the latest submission verdict.

  • [2024-11-25 20:53:52]
  • hack成功,自动添加数据
  • (/hack/1258)
  • [2024-11-11 12:16:35]
  • Judged
  • Verdict: WA
  • Time: 48ms
  • Memory: 297616kb
  • [2024-11-11 12:16:34]
  • Submitted

answer

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
typedef long long ll;
const int N = 5e3 + 5;
char s[N], t[N];
int n, m, f[N][N];ll ans;

int g[N][N], h[N][N], sum[N][N];
void solve(char s[], char t[], int n, int m)
{
    memset(g, 0, sizeof(g));
    memset(h, 0, sizeof(h));
    memset(sum, 0, sizeof(sum));
    for(int i = 1;i <= n;i++)
    {
        for(int j = 1;j <= m;j++)
            g[i][j] = (s[i] == t[j]) * (1 + g[i - 1][j - 1]), sum[i][g[i][j]]++;
        for(int j = min(n, m);j >= 1;j--)sum[i][j] += sum[i][j + 1];
        for(int j = 1;j <= min(n, m);j++)sum[i][j] += sum[i][j - 1];
        // for(int j = 1;j <= min(n, m);j++)printf("%d ", sum[i][j]);
        // puts("");
    }
    for(int i = n;i >= 1;i--)
        for(int j = n;j > i + 1;j--)
            h[i][j] = (s[i] == s[j]) * (1 + h[i + 1][j + 1]);
    for(int i = 1;i <= n;i++)
        for(int j = i + 2;j <= n;j++)
            // for(int a = 1;a <= min(h[i][j], j - i - 1);a++)
                // for(int k = 1;k <= m;k++)
                ans += sum[j - 1][j - i - 1] - sum[j - 1][j - i - min(h[i][j], j - i - 1) - 1];
                    // ans += sum[j - 1][j - i - a];
            // ans += sum[j - 1][j - i - 1] - sum[j - 1][j - i - h[j][i] - 1];
}

int main()
{
    scanf("%s%s", s + 1, t + 1), n = strlen(s + 1), m = strlen(t + 1);
    for(int i = n;i >= 1;i--)
        for(int j = m;j >= 1;j--)
            f[i][j] = (s[i] == t[j]) * (1 + f[i + 1][j + 1]), ans += f[i][j];
    solve(s, t, n, m), solve(t, s, m, n);
    return printf("%d\n", ans) & 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 48ms
memory: 297532kb

input:

abab
ab

output:

8

result:

ok 1 number(s): "8"

Test #2:

score: 0
Accepted
time: 31ms
memory: 297412kb

input:

abab
abaaab

output:

29

result:

ok 1 number(s): "29"

Test #3:

score: 0
Accepted
time: 24ms
memory: 297352kb

input:

abcd
abcde

output:

10

result:

ok 1 number(s): "10"

Test #4:

score: 0
Accepted
time: 23ms
memory: 297536kb

input:

aaba
ba

output:

6

result:

ok 1 number(s): "6"

Test #5:

score: -100
Wrong Answer
time: 40ms
memory: 297616kb

input:

babababaaabbaabababbbaabbbababbaaaaa
aaaabbaababbab

output:

880

result:

wrong answer 1st numbers differ - expected: '1161', found: '880'