func_code_string: #include <bits/stdc++.h>   using namespace std;   struct point {     int x, y;   };   struct ConvexHull {     vector<point> hull;     int m;     ConvexHull() : m(0) { hull.clear(); }     bool ccw(point x, point y, point z) {       return ((y.x - x.x) * (z.y - x.y) > (y.y - x.y) * (z.x - x.x));     }     void MakeHull(int n, vector<point> a) {       hull.clear();       if (!n) return;       int x = 0;       for (int i = 0; i < n; i++)         if ((a[i].y == a[x].y) ? a[i].x < a[x].x : a[i].y < a[x].y) x = i;       swap(a[0], a[x]);       hull.push_back({a[0].x, a[0].y + 1});       hull.push_back(a[0]);       sort(a.begin() + 1, a.begin() + n, [=](point x, point y) {         return (((x.y - a[0].y) * (y.x - a[0].x)) <                 (x.x - a[0].x) * (y.y - a[0].y));       });       m = 1;       for (int i = 1; i < n; i++) {         while (!ccw(hull[m - 1], hull[m], a[i]))           if (m > 1)             hull.pop_back(), m--;           else if (i + 1 == n)             break;           else             i++;         hull.push_back(a[i]);         m++;       }       hull.erase(hull.begin());     }   };   int n;   int r;   vector<point> v;   ConvexHull cw;   int ma = 0;   vector<point> rez;   void rec(int l, int rem, int s, point r) {     if (!rem) {       int d = s * n - r.x * r.x - r.y * r.y;       if (d > ma) {         ma = d;         rez = v;       }       return;     }     if (l == cw.m) return;     rec(l + 1, rem, s, r);     v.push_back(cw.hull[l]);     r = {r.x + v.back().x, r.y + v.back().y};     s += v.back().x * v.back().x + v.back().y * v.back().y;     rec(l, rem - 1, s, r);     v.pop_back();   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cin >> n >> r;     for (int i = 0; i * i <= r * r; i++)       for (int j = 0; j * j + i * i <= r * r; j++) {         v.push_back({i, j});         if (i) v.push_back({-i, j});         if (j) v.push_back({i, -j});         if (i - j) v.push_back({j, i});         if (i * j) v.push_back({-i, -j});       }     cw.MakeHull(v.size(), v);     v.clear();     rec(0, n, 0, {0, 0});     cout << ma <<   n ;     for (int i = 0; i < n; i++) cout << rez[i].x <<     << rez[i].y <<   n ;     return 0;   }   