Cod sursa(job #3347178)

Utilizator ValiAntonieqxcfds ValiAntonie Data 15 martie 2026 19:32:02
Problema Parantezare optima de matrici Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("special.in");
ofstream fout("special.out");

int n, x, k, sum, nr;
long long total, p;
int fr1[10000001], fr2[10000001];

int main(){
fin>>n>>p>>x;
// nr = numarul total de prefixe <= prefixul curent
fr1[0] = 1;
nr = 1;
for (int i = 1; i <= n; i++){
    int val = 0;
    fin>>k;
    if (k == x)
        val = 1;
    else
        val = -1;

    sum += val;
    if (val == 1){
        if (sum >= 0)
            nr += fr1[sum];
        else
            nr += fr2[-sum];
    }
    else {
        if (sum + 1 >= 0)
            nr -= fr1[sum + 1];
        else
            nr -= fr2[-(sum + 1)];
    }
    total += nr;
    if (sum >= 0)
        fr1[sum]++;
    else
        fr2[-sum]++;
    nr++;
}
if (total >= p)
    fout << "DA" << "\n";
else
    fout << "NU" << "\n";
fout << total;
    return 0;
}