Cod sursa(job #2210048)

Utilizator testsursaSurseTest testsursa Data 5 iunie 2018 15:47:25
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("doipe.in");
ofstream g("doipe.out");

char s[2002];
int dp[2][2002];
int suma[2][2002];
const int mod=29997;
int main()
{
    int t,n,i,j,k;
    f>>t;
    while(t--)
    {

        f>>n;
        f>>s;
        //cout<<s<<endl;
        dp[1][1]=1;
        suma[1][1]=1;

        for(i=2;i<=n;i++)
        {
            for(j=1;j<=i;j++)
            {
                if(s[i-2]=='<')
                    dp[i%2][j]=suma[(i-1)%2][j-1];
                else
                    dp[i%2][j]=(mod+suma[(i-1)%2][i-1]-suma[(i-1)%2][j-1])%mod;

                suma[i%2][j]=(suma[i%2][j-1]+dp[i%2][j])%mod;
            }
        }

        g<<suma[n%2][n]<<endl;
        for(int i=0;i<=1;i++)
            for(int j=1;j<=n;j++)
                dp[i][j]=suma[i][j]=0;
    }

    return 0;
}