Cod sursa(job #3364327)
| Utilizator | Data | 1 septembrie 2026 19:26:57 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <iostream>
using namespace std;
int n,t,a;
long long cnt=0;
long long frec[1000000];
int s[100005],v[100002];
int main()
{
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n;
cin>>a;
for(int j=1;j<=n;j++)
{
v[j]=(a%10)-1;
a/=10;
}
for(int j=1;j<=n;j++)
{
s[j]=s[j-1]+v[j];
frec[s[j]+n]++;
}
for(int j=0;j<=9*n;j++)
{
cnt=frec[j]*(frec[j]-1)/2;
frec[j]=0;
}
cnt+=frec[n];
cout<<cnt<<'\n';
}
return 0;
}
