fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const long long MOD = 1e9 + 7;
  4. int n;
  5. string s;
  6. long long dp[3005][3005];
  7.  
  8. main() {
  9. ios_base::sync_with_stdio(false);
  10. cin.tie(0); cout.tie(0);
  11. freopen("TEST.inp", "r", stdin);
  12. freopen("TEST.out", "w", stdout);
  13. cin >> n;
  14. cin >> s;
  15.  
  16. s = " " + s;
  17. dp[1][1] = 1;
  18. for (int i = 2; i <= n; i++) {
  19. if (s[i - 1] == '<') {
  20. for (int j = 1; j <= i; j++)
  21. dp[i][j] = dp[i - 1][j - 1];
  22. } else {
  23. for (int j = 1; j <= i; j++) {
  24. dp[i][j] = dp[i - 1][i - 1] - dp[i - 1][j - 1];
  25. if (dp[i][j] < 0) dp[i][j] += MOD;
  26. }
  27. }
  28. for (int j = 1; j <= i; j++) {
  29. dp[i][j] += dp[i][j - 1];
  30. if (dp[i][j] >= MOD) dp[i][j] -= MOD;
  31. }
  32. }
  33.  
  34. cout << dp[n][n] << '\n';
  35.  
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty