Cod sursa(job #2300358)

Utilizator 12222Fendt 1000 Vario 12222 Data 11 decembrie 2018 11:09:21
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#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;
}