Pagini recente » Cod sursa (job #918713) | Cod sursa (job #2371643) | Cod sursa (job #1057903) | Cod sursa (job #1162039) | Cod sursa (job #1392836)
#include <cstdio>
#include <cstring>
#define nmax 100001
#define MOD 100003
#define ll long long
using namespace std;
char v[nmax];
long long p, sol1=1, n, i, nre, nrv, sol2=1, sol3=1, sol4=1, auxi;
void gcd(ll &x, ll &y, int a, int b)
{
if (!b)
x = 1, y = 0;
else
{
gcd(x, y, b, a % b);
ll aux = x;
x = y;
y = aux - y * (a / b);
}
}
int main()
{
freopen ("spion.in", "r", stdin);
freopen ("spion.out", "w", stdout);
scanf ("%d", &p);
getc(stdin);
gets(v);
n=strlen(v);
//printf("%s %d",v,n);
if (p==1)
{
for (i=0; i<n; i++)
{
if (v[i]=='E') sol1++;
}
printf ("%d", sol1);
}
if (p==2)
{
for (i=0; i<n; i++)
{
if (v[i]=='E') nre++;
if (v[i]=='V') nrv++;
sol2=sol2*(i+1);
sol2=sol2%MOD;
}
for (i=1; i<=nre; i++)
{
sol3=sol3*i;
sol3=sol3%MOD;
}
for (i=1; i<=nrv; i++)
{
sol4=sol4*i;
sol4=sol4%MOD;
}
ll inv=0, ins;
gcd(inv, ins, sol3, MOD);
if (inv <= 0)
inv = MOD + inv % MOD;
sol3=inv;
inv=0; gcd(inv, ins, sol4, MOD);
if (inv <= 0)
inv = MOD + inv % MOD;
sol4=inv;
auxi=(sol2*sol3)%MOD;
auxi=(auxi*sol4)%MOD;
printf ("%d", auxi);
}
}