Fuzetea

Time limit: 0.5s Memory limit: 512MB Input: Output:

Suntem la Craiova și NN olteni intră într-un bar unde specialitatea principală este Fuzetea. Barul, recent deschis, are un format aparte, cu locuri disponibile doar la masa din centru. Aceasta are formă circulară, iar în centrul său sunt toți barmanii și tot Fuzetea-ul. Știm sigur că în bar intră doar NN olteni pentru că în bar există doar NN locuri disponibile și niciun oltean nu va pleca până dimineață.

Ca în toate locurile din lumea asta, în Craiova sunt două tipuri de olteni, unii sunt introvertiți și alții extrovertiți. Astăzi fiind o zi frumoasă de mai la Craiova mulți oameni intră în bar și din păcate sau din fericire toți vin singuri. Atunci când un oltean intră într-un bar are anumite preferințe pentru locul unde se așează în funcție de felul său de a fi, astfel:

Un oltean introvertit vrea să-și petreacă seara singur și liniștit așa că își alege locul astfel:

  • Prima dată se uită dacă există un loc unde nici în locul stânga nici în locul dreapta acestui loc nu s-a așezat nimeni. Dacă sunt mai multe astfel de locuri îl alege pe oricare.
  • Dacă nu există niciun astfel de loc atunci se uită dacă există un loc care nu are un vecin ori în locul din stânga ori în locul din dreapta. Dacă există mai multe astfel de locuri îl alege pe oricare.
  • Dacă există doar locuri libere cu ambele locuri vecine ocupate atunci alege oricare dintre aceste locuri.

Unui oltean extrovertit, deși a venit singur la bar, nu prea îi convine acest fapt și își dorește ca măcar să-și facă prieteni noi cu care să se distreze, astfel că el își alege locul astfel:

  • Prima dată se uită dacă există un loc care are ambii vecini ocupați de alți oameni. Dacă există mai multe astfel de locuri îl alege pe oricare.
  • Dacă nu există un astfel de loc cu ambii vecini ocupați, atunci el va căuta să se așeze pe un loc ce are totuși un vecin ocupat. Dacă există mai multe locuri de acest fel îl va alege pe oricare.
  • Dacă barul este gol se așează oriunde și speră că o să se așeze alții lângă el mai târziu.

Cerință

Se dă NN și un șir cu NN caractere fără spații albe format din literele ee și ii:

  • dacă pe poziția xx se află litera II înseamnă că al xx-lea oltean sosit la bar este introvertit.
  • dacă pe poziția xx se află litera EE înseamnă că al xx-lea oltean sosit la bar este extrovertit.

Se cere să se calculeze în câte feluri se pot așeza în bar cei NN olteni dacă ei vin de fiecare dată în aceeași ordine.

Date de intrare

Pe prima linie a intrării se dă NN iar pe cea de-a doua linie se dă un șir continuu de NN caractere, fiecare caracter poate fi doar un EE sau II cu semnificația din enunț.

Date de ieșire

Pe prima linie a ieșirii se cere să se afișeze un singur întreg reprezentând numărul de moduri în care se pot așeza oltenii la bar modulo 1 000 000 0071 \ 000 \ 000 \ 007. Două moduri de așezare se consideră distincte dacă există cel puțin un scaun pe care se așează persoane distincte în cele două moduri. În particular, configurațiile echivalente prin rotație a mesei se consideră distincte.

Restricții și precizări

  • 1N2501 \leq N \leq 250.
# Scor Restricții
1 4 1N71 \leq N \leq 7
2 7 1N201 \leq N \leq 20
3 5 Toți oltenii sunt extrovertiți.
4 24 Toți oltenii sunt introvertiți.
5 39 1N1001 \leq N \leq 100
6 21 Fără restricții adiționale.

Exemplul 1

stdin

4
EIEE

stdout

8

Explicație

Mai jos se poate vedea reprezentarea grafică a două moduri din opt de așezare a oltenilor în cadrul primului exemplu:

Exemplul 2

stdin

10
EIIEEEIIEE

stdout

47040

Exemplul 3

stdin

5
EEEEE

stdout

40

Exemplul 4

stdin

5
IIIII

stdout

40

Log in or sign up to be able to send submissions!