malteklaes/cpp-code-code_search_net-style huggingface dataset:
#include <bits/stdc++.h>   using namespace std;   int key;   long long dis[1000];   struct pt {     long long x, y, z;   } f[8], point[8];   long long meow(int a, int b) {     long long ta, tb, tc;     ta = f[a].x - f[b].x;     tb = f[a].y - f[b].y;     tc = f[a].z - f[b].z;     return (ta * ta + tb * tb + tc * tc);   }   int chk() {     int i, j, cnta, cntb, cntc, k;     long long dis, sq2, sq3, ik;     for (i = 0; i < 8; i++) {       for (j = 0; j < 8; j++) {         if (i != j && f[i].x == f[j].x && f[i].y == f[j].y && f[i].z == f[j].z)           return false;       }     }     for (i = 0; i < 8; i++) {       for (j = 0; j < 8; j++) {         dis = meow(i, j);         cnta = cntb = cntc = 0;         for (k = 0; k < 8; k++) {           ik = meow(i, k);           if (ik == dis) cnta++;           if (ik == dis * 2) cntb++;           if (ik == dis * 3) cntc++;         }         if (cnta == 3 && cntb == 3 && cntc == 1) break;       }       if (j == 8) return false;     }     return true;   }   void go(int r) {     if (r == 8) {       if (chk()) {         key = 1;         cout <<  YES  << endl;         for (int i = 0; i < 8; i++)           cout << f[i].x <<     << f[i].y <<     << f[i].z << endl;       }       return;     }     f[r] = point[r];     go(r + 1);     if (key) return;     swap(f[r].x, f[r].y);     go(r + 1);     if (key) return;     swap(f[r].y, f[r].z);     go(r + 1);     if (key) return;     swap(f[r].x, f[r].y);     go(r + 1);     if (key) return;     swap(f[r].y, f[r].z);     go(r + 1);     if (key) return;     swap(f[r].x, f[r].y);     go(r + 1);     return;   }   int main() {     int i;     for (i = 0; i < 8; i++) cin >> point[i].x >> point[i].y >> point[i].z;     key = 0;     f[0] = point[0];     go(1);     if (!key) cout <<  NO  << endl;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   template <typename T>   void read(T &x) {     x = 0;     char c;     for (c = getchar(); !isdigit(c); c = getchar())       ;     for (; isdigit(c); c = getchar()) x = x * 10 + c -  0 ;   }   const int N = 255, P = 998244353, oo = 0x3f3f3f3f;   int mul(int a, int b) { return 1ll * a * b % P; }   int add(int a, int b) {     a += b;     return a >= P ? a - P : a;   }   int sub(int a, int b) {     a -= b;     return a < 0 ? a + P : a;   }   int gcd(int a, int b) { return !b ? a : gcd(b, a % b); }   namespace Dinic {   const int S = N * N;   struct Edge {     int d, cap, nxt;   } es[S << 2];   int vn, g[S], lev[S], itr[S], q[S], h, t, en = 1;   void add(int s, int d, int cap) {     es[++en] = (Edge){d, cap, g[s]}, g[s] = en;     es[++en] = (Edge){s, 0, g[d]}, g[d] = en;   }   void bfs(int s) {     int v;     memset(lev, -1, sizeof(lev));     h = t = 0;     q[t++] = s;     lev[s] = 0;     while (h < t) {       v = q[h++];       for (int i = g[v], d = es[i].d; i; i = es[i].nxt, d = es[i].d) {         if (es[i].cap > 0 && lev[d] < 0) {           lev[d] = lev[v] + 1;           q[t++] = es[i].d;         }       }     }   }   int dfs(int v, int t, int f) {     if (v == t) return f;     for (int &i = itr[v]; i; i = es[i].nxt) {       if (es[i].cap <= 0 || lev[es[i].d] <= lev[v]) continue;       int a = dfs(es[i].d, t, min(es[i].cap, f));       if (a <= 0) continue;       es[i].cap -= a;       es[i ^ 1].cap += a;       return a;     }     return 0;   }   int sol(int s, int t) {     int i, res = 0, a;     while (true) {       bfs(s);       if (lev[t] < 0) break;       for (i = 0; i <= vn; ++i) itr[i] = g[i];       for (a = dfs(s, t, oo); a > 0; a = dfs(s, t, oo)) {         res += a;       }     }     return res;   }   }  // namespace Dinic   using namespace Dinic;   int n, m;   vector<int> xx, yy;   struct Rec {     int x1, y1, x2, y2;   } rec[N];   int f(vector<int> &a, int x) {     return lower_bound(a.begin(), a.end(), x) - a.begin() + 1;   }   int main(int argc, char *argv[]) {     scanf( %d%d , &n, &m);     for (int i = 1; i <= (m); ++i) {       int x1, y1, x2, y2;       scanf( %d%d%d%d , &x1, &y1, &x2, &y2);       --x1, --y1;       xx.push_back(x1), xx.push_back(x2);       yy.push_back(y1), yy.push_back(y2);       rec[i] = (Rec){x1, y1, x2, y2};     }     xx.push_back(0), yy.push_back(0);     sort(xx.begin(), xx.end()), sort(yy.begin(), yy.end());     xx.erase(unique(xx.begin(), xx.end()), xx.end());     yy.erase(unique(yy.begin(), yy.end()), yy.end());     int sx = xx.size(), sxy = sx + yy.size(), src = sxy + m + 1, snk = src + 1;     vn = snk;     for (int i = 1; i < (xx.size()); ++i) {       add(src, i + 1, xx[i] - xx[i - 1]);     }     for (int i = 1; i < (yy.size()); ++i) {       add(sx + i + 1, snk, yy[i] - yy[i - 1]);     }     for (int i = 1; i <= (m); ++i) {       int x1 = rec[i].x1, x2 = rec[i].x2, y1 = rec[i].y1, y2 = rec[i].y2;       x1 = f(xx, x1);       x2 = f(xx, x2);       y1 = f(yy, y1);       y2 = f(yy, y2);       for (int j = x1 + 1; j <= x2; ++j) add(j, sxy + i, oo);       for (int j = y1 + 1; j <= y2; ++j) add(sxy + i, sx + j, oo);     }     cout << sol(src, snk) << endl;   }
#include <bits/stdc++.h>   using namespace std;   const int INF = 1e9;   const int MX = 3001;   map<pair<int, int>, bool> forbidden[MX];   struct Graph {     int d[MX][MX];     int parent[MX][MX];     vector<int> adj[MX];     void addEdge(int u, int v) {       adj[u].push_back(v);       adj[v].push_back(u);     }     vector<int> bfs(int s, int n) {       for (int i = 0; i < n; i++) {         for (int j = 0; j < n; j++) {           d[i][j] = INF;           parent[i][j] = -1;         }       }       d[n][s] = 0;       deque<pair<int, int>> q;       q.push_back({n, s});       while (!q.empty()) {         int a = q.front().first;         int b = q.front().second;         q.pop_front();         for (int c : adj[b]) {           if (d[b][c] == INF && !forbidden[a][{b, c}]) {             d[b][c] = d[a][b] + 1;             parent[b][c] = a;             q.push_back({b, c});           }         }       }       int minDistance = INF;       for (int i = 0; i < n; i++) {         minDistance = min(minDistance, d[i][n - 1]);       }       if (minDistance == INF) return {};       int prev = -1;       for (int i = 0; i < n; i++) {         if (d[i][n - 1] == minDistance) {           prev = i;           break;         }       }       vector<int> path = {n};       int cur = n - 1;       while (prev != n) {         path.push_back(prev + 1);         int aux = prev;         prev = parent[prev][cur];         cur = aux;       }       reverse(path.begin(), path.end());       return path;     }   } G;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     int n, m, k;     cin >> n >> m >> k;     for (int i = 0; i < m; i++) {       int u, v;       cin >> u >> v;       u--;       v--;       G.addEdge(u, v);     }     for (int i = 0; i < k; i++) {       int a, b, c;       cin >> a >> b >> c;       a--;       b--;       c--;       forbidden[a][{b, c}] = true;     }     vector<int> path = G.bfs(0, n);     cout << (int)path.size() - 1 <<   n ;     for (int u : path) cout << u <<    ;     cout <<   n ;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int main() {     ios::sync_with_stdio(0);     cout.tie(0);     cin.tie(0);     cout.precision(10);     bool vozr = 1, ub = 1, same;     int n;     cin >> n;     vector<int> a(n);     for (int i = 0; i < n; i++) {       cin >> a[i];       if (i != 0 && a[i] > a[i - 1]) ub = 0;       if (i != 0 && a[i] < a[i - 1]) vozr = 0;     }     if (n <= 2 || (vozr && ub)) {       cout << -1 <<   n ;       return 0;     }     if (vozr) {       same = 1;       for (int i = 2; i < n - 1; i++) {         if (a[i] != a[i - 1]) same = 0;       }       if (same) {         if (a[n - 2] == a[n - 1])           cout << 1 <<     << n - 1 <<   n ;         else           cout << n - 1 <<     << n <<   n ;       } else         cout << 1 <<     << n <<   n ;     } else if (ub) {       same = 1;       for (int i = 2; i < n - 1; i++) {         if (a[i] != a[i - 1]) same = 0;       }       if (same) {         if (a[n - 2] == a[n - 1])           cout << 1 <<     << 2 <<   n ;         else           cout << n - 1 <<     << n <<   n ;       } else         cout << 1 <<     << n <<   n ;     } else {       if (n == 3) {         if (a[0] == a[2])           cout << -1 <<   n ;         else           cout << 1 <<     << 3 <<   n ;       } else {         int minn = 1100000000, maxx = -1, id1, id2;         for (int i = 0; i < n; i++) {           if (a[i] < minn) {             minn = a[i];             id1 = i;           }           if (a[i] >= maxx) {             maxx = a[i];             id2 = i;           }         }         if (id1 == 0) {           if (id2 == n - 1)             cout << 1 <<     << n <<   n ;           else {             if (id2 == 1)               cout << 2 <<     << 3 <<   n ;             else               cout << 2 <<     << id2 + 1 <<   n ;           }         } else {           if (id1 == 1)             cout << 2 <<     << 3 <<   n ;           else             cout << 2 <<     << id1 + 1 <<   n ;         }       }     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long n;     while (cin >> n) {       string s;       cin >> s;       long long a0 = 0, a1 = 0, a2 = 0;       for (long long i = 0; i < s.size(); i++) {         if (s[i] ==  0 ) {           a0++;         } else if (s[i] ==  1 ) {           a1++;         } else {           a2++;         }       }       long long d = s.size() / 3;       long long x = 0, y = 0, z = 0;       for (long long i = s.size() - 1; i >= 0; i--) {         if (s[i] ==  1 ) {           if (a1 > d && a2 < d) {             s[i] =  2 ;             a2++;             a1--;           }         }         if (s[i] ==  0 ) {           if (a0 > d && a2 < d) {             s[i] =  2 ;             a2++;             a0--;           }         }       }       for (long long i = 0; i < s.size(); i++) {         if (s[i] ==  1 ) {           if (a1 > d && a0 < d) {             s[i] =  0 ;             a0++;             a1--;           }         }         if (s[i] ==  2 ) {           if (a2 > d && a0 < d) {             s[i] =  0 ;             a0++;             a2--;           }         }       }       for (long long i = 0; i < s.size(); i++) {         if (s[i] ==  2 ) {           if (a2 > d && a1 < d) {             s[i] =  1 ;             a1++;             a2--;           }         }         if (s[i] ==  0 ) {           if (a0 > d && a1 < d && x >= d) {             s[i] =  1 ;             a1++;             a0--;           }           x++;         }       }       cout << s << endl;     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   void err(istream_iterator<string> it) {}   template <typename T, typename... Args>   void err(istream_iterator<string> it, T a, Args... args) {     cerr << *it <<   =   << a << endl;     err(++it, args...);   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     int n, m, a;     cin >> n >> m;     vector<int> cost(m);     for (int i = 0; i < m; i++) cin >> a >> cost[i];     sort(cost.begin(), cost.end(), greater<int>());     int k = 1;     while (true) {       int nxtk = k + 1;       int need = nxtk * (nxtk - 1) / 2;       if (nxtk % 2 == 0) need += nxtk / 2 - 1;       if (need <= (n - 1) && nxtk <= m)         k = nxtk;       else         break;     }     long long res = 0;     for (int i = 0; i < k; i++) res += cost[i];     cout << res;   }
#include <bits/stdc++.h>   using namespace std;   const int N = 1e+6 + 5;   int lp[N], ans = 1e+9;   set<int> factors;   void factorise(int n, int isv) {     int cnt = 0, ans = 0, n1 = n;     while (n % 2 == 0) {       cnt++;       n = n / 2;     }     if (cnt) {       ans = max(ans, 2);       if (isv) factors.insert(2);     }     for (int i = 3; i * i <= n; i++) {       cnt = 0;       while (n % i == 0) {         cnt++;         n = n / i;       }       if (cnt) {         ans = max(ans, i);         if (isv) factors.insert(i);       }     }     if (n > 1) {       ans = max(ans, n);       if (isv) factors.insert(n);     }     lp[n1] = ans;   }   int main() {     int x;     cin >> x;     for (int i = 2; i <= x; i++) factorise(i, i == x);     for (auto it : factors) {       int i = x - it + 1;       for (i; i <= x; i++) {         if (lp[i] != i) ans = min(ans, i - lp[i] + 1);       }     }     cout << ans;   }
#include <bits/stdc++.h>   using namespace std;   int a, s, d, f, g, h, j, k, l, i, n, m;   int main() {     cin >> n >> m >> k;     l = n * m * k / 100;     for (i = 0; i < n; i++) {       if (l > m) {         cout << m;         l = l - m;       } else if (l > 0) {         cout << l;         l = 0;       } else         cout << 0;       cout <<    ;     }   }
#include<bits/stdc++.h>   using namespace std;   #define ll long long   template <typename Arg1>   //print with endl   void pn(Arg1&& arg1)   { cout<<arg1<<  n ;}   template <typename Arg1, typename... Args>   void pn(Arg1&& arg1, Args&&... args)   { cout<<arg1<<  n ; pn(args...); }    //print with space   template <typename Arg1>   void ps(Arg1&& arg1)   { cout<<arg1<<   ;}   template <typename Arg1, typename... Args>   void ps(Arg1&& arg1, Args&&... args)   { cout<<arg1<<   ; ps(args...); }       template <typename Arg1>   void pvs(Arg1&& arg1, ll n)   { for(ll i=0;i<n;i++)ps(arg1[i]); }   template <typename Arg1>   void pvn(Arg1&& arg1, ll n)   { for(ll i=0;i<n;i++)pn(arg1[i]); }      ll sum(ll n){       ll v=0;       while(n!=0){           v+=(n%10);           n/=10;       }       return v;   }       ll log(ll n, ll b)   { ll c=0;     while(n>(b-1))     { c++; n/=b; } return c; }   #define fast  ios::sync_with_stdio(false); cin.tie(NULL);  cout.tie(NULL);   #define mod 1000000007 //10^9+7   #define st string   #define ull unsigned long long   #define pb push_back   #define mp make_pair   #define vi vector <int>   #define vll vector <long long>   #define f0(i,a) for(i=0;i<a;i++)   #define f1(i,a) for(i=1;i<=n;i++)   #define all(a) a.begin(),a.end()   #define sz(a) a.size()   #define lb lower_bound   #define ub upper_bound   #define pl pair<ll,ll>   #define vpl vector<pl>   #define ff first   #define ss second   #define um unordered_map   #define dsort(v) sort(v); reverse(v);   #define maxall(v) *max_element(all(v))   #define minall(v) *min_element(all(v))   #define gcd(a,b)        __gcd(a,b)   #define lcm(a,b)        a/__gcd(a,b)*b   #define Y                YES    #define N                NO    #define endl              n    #define debug(x)        cout << #x <<   :   << x << nl;   const ll MOD = 998244353;   const ll inf = 1e18;   const ll MAX = 2e5 + 1;   ll GCD(ll a,ll b){     if(b==0)       return a;     else        return GCD(b,a%b);   }   ll mulmod(ll x,ll n,ll M)   {       ll result=1;       while(n>0)       {           if(n% 2 ==1)               result=(result * x)%M;           x=(x*x)%M;           n=n/2;       }       return result;   }      /////////////////////////   bool isPowerOfTwo(ll n)    {        if (n == 0)            return 0;        while (n != 1)        {            if (n%2 != 0)                return 0;            n = n/2;        }        return 1;    }   void solve(){      ll i;      ll n;      cin>>n;      vll v(n);      f0(i,n) cin>>v[i];      f0(i,n){       if(v[i]&1)         cout<<v[i]<<   ;      }      f0(i,n){       if(!(v[i]&1))         cout<<v[i]<<   ;      }   cout<<endl;                     }   int main(){       fast;     #ifdef Local       freopen( inp.txt ,  r , stdin);      // freopen( out.txt ,  w , stdin);      #endif     // solve();/*     ll t;     cin>>t;     for(ll tt=1;tt<=t;tt++)     {       // cout<< Case # <<tt<< :  ;       solve();     }     //*/   }
#include <bits/stdc++.h>   using namespace std;   char str[40], ans[2][40], p[40];   int pre[40], sum[40];   int main() {     scanf( %s , str);     int L = 0, R = 0;     bool mark = true;     memset(pre, -1, sizeof(pre));     for (int i = 0; i < 27; i++) {       int a = str[i] -  A ;       sum[a]++;       if (pre[a] == -1)         pre[a] = i;       else {         L = pre[a];         R = i;         if (R - 1 == L) {           mark = false;         }       }     }     int k = 0;     for (int i = 0; i < 26; i++) {       if (sum[i] == 0 || sum[i] > 2) mark = false;       if (sum[i] == 2) k++;     }     if (k != 1 || !mark) {       printf( Impossible n );       return 0;     }     R = 26 - R;     int cnt = 0;     if (L > R) {       int o = 0;       for (int i = 26; i >= 0; i--) {         p[o++] = str[i];       }       for (int i = 0; i < 27; i++) str[i] = p[i];       swap(L, R);     }     int num = R - L;     if (num & 1) {       num = (num / 2) + 1;       int i;       for (i = num;; i++) {         if (cnt == L) break;         ans[0][i] = str[cnt++];       }       int flag = i - 1;       ans[1][i - 1] = str[cnt++];       for (; i < 13; i++) ans[0][i] = str[cnt++];       for (int i = 12; i > flag; i--) {         ans[1][i] = str[cnt++];       }       cnt++;       for (int i = flag - 1; i >= 0; i--) ans[1][i] = str[cnt++];       if (num) {         for (int i = 0; i < num; i++) ans[0][i] = str[cnt++];       }     } else {       num = num / 2;       int i;       for (i = num;; i++) {         if (cnt == L) break;         ans[0][i] = str[cnt++];       }       int flag = i;       ans[1][i] = str[cnt++];       for (; i < 13; i++) ans[0][i] = str[cnt++];       for (int i = 12; i > flag; i--) {         ans[1][i] = str[cnt++];       }       cnt++;       for (int i = flag - 1; i >= 0; i--) ans[1][i] = str[cnt++];       if (num) {         for (int i = 0; i < num; i++) ans[0][i] = str[cnt++];       }     }     if (L == 0 && R == 0) {       cnt = 0;       for (int i = 0; i < 13; i++) ans[0][i] = str[cnt++];       for (int i = 12; i >= 0; i--) ans[1][i] = str[cnt++];     }     for (int i = 0; i < 2; i++) {       for (int j = 0; j < 13; j++) printf( %c , ans[i][j]);       printf(  n );     }   }
#include <bits/stdc++.h>   using namespace std;   int N;   vector<int> V;   bool Do() {     while (V.size() > 0 && V.back() % 2 == 0) V.pop_back();     if (V.size() == 0) return false;     int sum = 0;     int p = -1;     for (int i = 0; i < V.size(); ++i) {       if (V[i] % 2 && i < V.size() - 1) p = i;       sum += V[i];     }     if (sum % 2 == 0)       return true;     else if (p == -1)       return false;     else {       for (int i = p; i + 1 < V.size(); ++i) V[i] = V[i + 1];       V.pop_back();       return true;     }   }   int main() {     int nr_t, nr;     char c;     cin >> nr_t;     for (int i = 1; i <= nr_t; ++i) {       cin >> N;       for (int j = 1; j <= N; ++j) {         cin >> c;         V.push_back(c -  0 );       }       if (!Do())         cout <<  -1  <<   n ;       else {         for (int i = 0; i < V.size(); ++i) cout << V[i];         cout <<   n ;       }       V.clear();     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   void toogle(vector<vector<int> >& v, int i, int j) {     if (v[i][j] == 1) {       v[i][j] = 0;     } else if (v[i][j] == 0) {       v[i][j] = 1;     }   }   int main() {     vector<vector<int> > v(3, vector<int>(3, 1));     int i, j, e;     for (i = 0; i < 3; i++) {       for (j = 0; j < 3; j++) {         cin >> e;         if (e % 2 == 0) {           continue;         } else {           toogle(v, i, j);           if (i - 1 >= 0) toogle(v, i - 1, j);           if (j - 1 >= 0) toogle(v, i, j - 1);           if (i + 1 < 3) toogle(v, i + 1, j);           if (j + 1 < 3) toogle(v, i, j + 1);         }       }     }     for (i = 0; i < 3; i++) {       for (j = 0; j < 3; j++) {         cout << v[i][j];       }       cout << endl;     }   }
#include <bits/stdc++.h>   using namespace std;   struct edge {     int to, next;   } e[200010];   int n, m, q, cnt, father[100010], fa[100010][30], a[100010], dis[100010],       deep[100010], head[100010];   inline void add(int u, int v) {     cnt++;     e[cnt].to = v;     e[cnt].next = head[u];     head[u] = cnt;   }   inline int find(int x) {     return father[x] == x ? x : father[x] = find(father[x]);   }   inline void dfs(int u) {     deep[u] = deep[fa[u][0]] + 1;     for (int i = head[u]; i; i = e[i].next) {       int v = e[i].to;       if (!deep[v]) {         fa[v][0] = u;         dfs(v);         if (find(u) == find(v)) a[u] |= a[v];       } else if (deep[v] < deep[u] - 1) {         if ((deep[u] + deep[v] + 1) & 1) a[u] = 1;         for (int x = find(u); deep[x] > deep[v] + 1; x = find(x))           father[x] = fa[x][0];       }     }   }   inline void dfs2(int u) {     dis[u] += a[u];     for (int i = head[u]; i; i = e[i].next) {       int v = e[i].to;       if (deep[v] != deep[u] + 1) continue;       if (find(u) == find(v)) a[v] |= a[u];       dis[v] = dis[u];       dfs2(v);     }   }   inline int LCA(int x, int y) {     if (deep[x] > deep[y]) swap(x, y);     for (int i = 20; i >= 0; i--)       if (deep[fa[y][i]] >= deep[x]) y = fa[y][i];     if (x == y) return x;     for (int i = 20; i >= 0; i--)       if (fa[x][i] != fa[y][i]) x = fa[x][i], y = fa[y][i];     return fa[x][0];   }   inline bool check(int u, int v) {     if (!LCA(u, v)) return 0;     if ((deep[u] + deep[v]) & 1) return 1;     if (dis[u] + dis[v] - 2 * dis[LCA(u, v)]) return 1;     return 0;   }   int main() {     scanf( %d%d , &n, &m);     for (int i = 1; i <= n; i++) father[i] = i;     for (int i = 1, x, y; i <= m; i++) {       scanf( %d%d , &x, &y);       add(x, y);       add(y, x);     }     for (int i = 1; i <= n; i++)       if (!deep[i]) dfs(i), dfs2(i);     for (int i = 1; i <= 20; i++)       for (int j = 1; j <= n; j++) fa[j][i] = fa[fa[j][i - 1]][i - 1];     scanf( %d , &q);     while (q--) {       int x, y;       scanf( %d%d , &x, &y);       if (check(x, y))         puts( Yes );       else         puts( No );     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int main() {     ios::sync_with_stdio(false);     int n, x;     vector<int> a, b, c;     cin >> n;     for (int i = 0; i < n; i++) {       cin >> x;       if (x == 1)         a.push_back(i + 1);       else if (x == 2)         b.push_back(i + 1);       else         c.push_back(i + 1);     }     int res = min({a.size(), b.size(), c.size()});     cout << res << endl;     for (int i = 0; i < res; i++) {       cout << a[i] <<     << b[i] <<     << c[i] << endl;     }     return 0;   }