Cod sursa(job #1290628)

Utilizator alex_bucevschiBucevschi Alexandru alex_bucevschi Data 11 decembrie 2014 16:50:30
Problema Potrivirea sirurilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
#define mod 29997
using namespace std;
int dp[2002],S[2][2002],pos,i,j,n,t;
char s[2002];
int main()
{
    freopen("doipe.in","r",stdin);
    freopen("doipe.out","w",stdout);
    scanf("%d",&t);
    for(;t;t--)
    {
        scanf("%d",&n);
        scanf("%s",s+1);
        dp[1]=1;
        S[1][1]=1;
        pos=0;
        for(i=2;i<=n;i++)
        {
            pos=1-pos;
            S[1-pos][1]=0;
            for(j=1;j<=i;j++)
            {
                if(s[i-1]=='<')
                    dp[j]=S[pos][j-1]%mod;
                else
                    dp[j]=(S[pos][i-1]-S[pos][j-1])%mod;
                S[1-pos][j]=(S[1-pos][j-1]+dp[j]);
            }
        }
        printf("%d\n",(S[1-pos][n])%mod);
    }
    return 0;
}