Pagini recente » Cod sursa (job #2427217) | Cod sursa (job #285286) | Cod sursa (job #271529) | Cod sursa (job #2946703) | Cod sursa (job #2300358)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("char.in");
ofstream fout("char.out");
int n,m;
int f[30];
char a[10002];
struct Interval
{
int st,dr;
bool operator <(const Interval &e)const
{
return dr<e.dr;
}
}s[10002];
int main()
{
fin>>n;
fin>>(a+1);
for(int i=1;i<=n;i++)
f[a[i]-'a']++;
int x,pmax,lit;
pmax=0;
fin>>m;
for(int i=0;fin>>x;)
{
while(!f[i])i++;
if(pmax<x)
{
pmax=x;
lit=f[i];
}
else if(pmax==x)lit+=f[i];
f[i]=x;
i++;
}
fout<<lit<<"\n";
int sol=0,last;
for(int i=1;i<=n;i++)
{
s[i].st=max(1,i-f[a[i]-'a']);
s[i].dr=min(n,i+f[a[i]-'a']);
}
sort(s+1,s+n+1);
sol=last=1;
for(int i=2;i<=n;i++)
if(s[last].dr<s[i].st)
{
sol++;
last=i;
}
fout<<sol<<"\n";
fin.close();
fout.close();
return 0;
}