func_code_string: #include <bits/stdc++.h>   using namespace std;   int N;   pair<pair<int, int>, int> arr[2050];   int vis[2050];   char s[2050];   double angle(pair<int, int> x, pair<int, int> y, pair<int, int> z) {     pair<int, int> xy = {y.first - x.first, y.second - x.second};     pair<int, int> xz = {y.first - z.first, y.second - z.second};     double angyx = 1.0 * xy.first * xz.first + 1.0 * xy.second * xz.second;     double angyz = 1.0 * xy.first * xz.second - 1.0 * xy.second * xz.first;     return atan2(angyz, angyx);   }   int main() {     scanf( %d , &N);     for (int i = 0; i < N; i++) {       int x, y;       scanf( %d%d , &x, &y);       arr[i] = {{x, y}, i + 1};     }     scanf( %s , s);     sort(arr, arr + N,          [](const pair<pair<int, int>, int> &a,             const pair<pair<int, int>, int> &b) {            if (a.first.second == b.first.second)              return a.first.first < b.first.first;            return a.first.second < b.first.second;          });     pair<int, int> tmp1 = {arr[0].first.first - 1, arr[0].first.second};     pair<int, int> tmp2 = arr[0].first;     vis[0] = 1;     pair<int, int> a = {-1, -1};     pair<int, int> b = {1, -1};     pair<int, int> c = {2, -1};     printf( %d  , arr[0].second);     for (int i = 0; i < N - 2; i++) {       double max = -1234567.0, min = 1234567.0;       int maxi, mini;       for (int j = 0; j < N; j++) {         if (vis[j] == 1) continue;         double ang = angle(tmp1, tmp2, arr[j].first);         if (i == 0) {         }         if (i == 0 && arr[j].first.second == arr[0].first.second &&             arr[j].first.first > arr[0].first.first) {           min = -1234, mini = j;           continue;         }         if (i == 0 && arr[j].first.second == arr[0].first.second &&             arr[j].first.first < arr[0].first.first) {           max = 1234, maxi = j;           continue;         }         if (ang > max) max = ang, maxi = j;         if (ang < min) min = ang, mini = j;       }       if (s[i] ==  R ) {         tmp1 = tmp2;         tmp2 = arr[maxi].first;         vis[maxi] = 1;         printf( %d  , arr[maxi].second);       } else {         tmp1 = tmp2;         tmp2 = arr[mini].first;         vis[mini] = 1;         printf( %d  , arr[mini].second);       }     }     for (int i = 0; i < N; i++) {       if (vis[i] == 0) {         printf( %d n , arr[i].second);       }     }   }   