Cod sursa(job #1857994)
Utilizator | Data | 26 ianuarie 2017 22:02:40 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include <iostream>
using namespace std;
int fr[100];
int main()
{
char k;
int n, s=0, tot=0;
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>k;
if(k=='1')
s+=1;
else
s-=1;
fr[s]++;
}
for(int i=0; i<=n; i++)
{
if(fr[s]>=2)
tot+=(fr[s]*(fr[s]+1))/2;
}
cout<<tot;
return 0;
}