func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, a, b, dp[300][300];   long long s;   vector<pair<long long, long long> > v;   long long r, tr;   long long gs(long long a, long long b, long long c) {     long long s = 0;     s = (v[b].first - v[a].first) * (v[c].second - v[a].second) -         (v[b].second - v[a].second) * (v[c].first - v[a].first);     return s;   }   int main() {     ios_base::sync_with_stdio(0);     cin >> n;     for (int i = 0; i < n; i++) {       cin >> a >> b;       v.push_back(make_pair(a, b));     }     for (int i = 0; i < n; i++)       s +=           v[(i + 1) % n].first * v[i].second - v[(i + 1) % n].second * v[i].first;     if (s < 0) reverse(v.begin(), v.end());     for (int i = 0; i < n; i++) dp[i][(i + 1) % n] = 1;     for (int span = 2; span < n; span++) {       for (int l = 0; l < n; l++) {         r = l + span;         r %= n;         for (int q = l + 1; q < l + span; q++) {           tr = q % n;           if (gs(l, r, tr) > 0)             dp[l][r] = (dp[l][r] + dp[l][tr] * dp[tr][r]) % 1000000007;         }       }     }     cout << dp[0][n - 1] << endl;     cin.get();     cin.get();     return 0;   }   