malteklaes/cpp-code-code_search_net-style huggingface dataset:
#include <bits/stdc++.h>   using namespace std;   int T, N;   int P;   vector<int> v, A, B;   long long pw(long long a, int n) {     long long ret = 1;     while (n) {       if (n & 1) ret = ret * a % 1000000007;       a = a * a % 1000000007;       n >>= 1;     }     return ret;   }   int main() {     scanf( %d , &T);     while (T--) {       v.clear();       A.clear();       B.clear();       scanf( %d %d , &N, &P);       v.resize(N);       for (int i = 0; i < N; i++) scanf( %d , &v[i]);       if (P == 1) {         if (v.size() % 2)           printf( 1 n );         else           printf( 0 n );         continue;       }       sort(v.rbegin(), v.rend());       int i = 0;       while (i < N) {         A.push_back(v[i]);         long long need = 1;         int prv = v[i];         i++;         while (i < N) {           B.push_back(v[i]);           int now = v[i];           i++;           if (prv - now >= 20) break;           while (prv > now) {             need *= P;             prv--;             if (need > N) break;           }           if (need > N) break;           need--;           if (need == 0) break;         }         if (need) {           while (i < N) {             B.push_back(v[i]);             i++;           }         }       }       long long res = 0;       for (int k : A) {         res += pw(P, k);         res %= 1000000007;       }       for (int k : B) {         res -= pw(P, k);         res %= 1000000007;       }       res += 1000000007;       res %= 1000000007;       printf( %lld n , res);     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int sieve(vector<bool> &arr, vector<int> &ans) {     int res = INT_MAX;     for (int i = 2; i <= sqrt(arr.size()); i++) {       if (arr[i]) {         for (int j = i * i; j < arr.size(); j += i) {           arr[j] = false;           if (ans[j] == ans[i]) ans[j]++;           res = min(res, ans[j]);         }       }     }     return arr.size() > 4 ? res : 1;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     int n;     cin >> n;     vector<bool> arr(n + 2, true);     vector<int> ans(n + 2, 1);     int res = sieve(arr, ans);     cout << res << endl;     for (int i = 2; i < arr.size(); i++) cout << ans[i] <<    ;     cout << endl;     return 0;   }
#include <bits/stdc++.h>   long long MOD = 1000000007;   long long C[2000 + 200][2000 + 200];   int pos = 0;   bool notfree[2000 + 200];   int n;   void combin() {     C[0][0] = 1;     for (int i = 1; i <= 2000; i++) {       C[0][i] = 1;       C[i][i] = 1;       for (int j = 1; j < i; j++) C[j][i] = (C[j][i - 1] + C[j - 1][i - 1]) % MOD;     }   }   long long f[2000 + 200];   int cpos = 0;   void init() {     f[0] = 1;     for (int i = 1; i <= 2000; i++) f[i] = (f[i - 1] * i) % MOD;   }   int a[2000 + 200];   void fix(long long &n) {     if (n < 0) n += MOD;   }   void solve() {     for (int i = 1; i <= n; i++)       if (a[i] != -1) notfree[a[i]] = true;     for (int i = 1; i <= n; i++)       if (a[i] == -1) pos++;     for (int i = 1; i <= n; i++)       if (a[i] == -1 && !notfree[i]) cpos++;     init();     long long res = 0;     for (int i = 1; i <= cpos; i++) {       if (i % 2)         res = (res + C[i][cpos] * f[pos - i]) % MOD;       else {         res = (res - C[i][cpos] * f[pos - i]) % MOD;         fix(res);       }     }     res = (f[pos] - res) % MOD;     fix(res);     printf( %I64d , res);   }   int main() {     scanf( %d , &n);     for (int i = 1; i <= n; i++) scanf( %d , &a[i]);     combin();     solve();   }
#include <bits/stdc++.h>   using namespace std;   inline bool EQ(double a, double b) { return fabs(a - b) < 1e-9; }   const int INF = 1 << 29;   inline int two(int n) { return 1 << n; }   inline int test(int n, int b) { return n & two(b); }   inline void set_bit(int& n, int b) { n |= two(b); }   inline void unset_bit(int& n, int b) { n &= ~two(b); }   inline int last_bit(int n) { return n & (-n); }   inline int ones(int n) {     int res = 0;     while (n && ++res) n -= n & (-n);     return res;   }   template <class T>   void chmax(T& a, const T& b) {     a = max(a, b);   }   template <class T>   void chmin(T& a, const T& b) {     a = min(a, b);   }   long long gcd(long long a, long long b) {     if (!b) return a;     return gcd(b, a % b);   }   long long nsn(long long a, long long b) { return a / gcd(a, b) * b; }   int main() {     long long a, b;     cin >> a >> b;     long long N = nsn(a, b);     long long sum1 = N / a - 1, sum2 = N / b - 1;     if (a < b)       sum2++;     else       sum1++;     if (sum1 > sum2)       cout <<  Dasha  << endl;     else if (sum1 < sum2)       cout <<  Masha  << endl;     else       cout <<  Equal  << endl;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int n, a[100010], b[100010], c[100010];   int main(int argc, char* argv[]) {     scanf( %d , &n);     for (int i = 0; i < n; i++) scanf( %d , &a[i]);     sort(a, a + n);     for (int i = 0; i < n - 1; i++) scanf( %d , &b[i]);     sort(b, b + n - 1);     for (int i = 0; i < n - 2; i++) scanf( %d , &c[i]);     sort(c, c + n - 2);     for (int i = 0; i < n; i++) {       if (a[i] != b[i]) {         printf( %d n , a[i]);         break;       }     }     for (int i = 0; i < n - 1; i++) {       if (b[i] != c[i]) {         printf( %d n , b[i]);         break;       }     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int n;   int a[500001];   map<int, int> cnt, pos;   vector<int> ans;   struct mypair {     int left;     int right;     int value;   };   mypair Mypair[500001];   int pointer = 0;   void writeans(int a, int b) {     ans.push_back(a);     ans.push_back(b);     ans.push_back(a);     ans.push_back(b);     cnt.clear();     pos.clear();     pointer = 0;   }   int main() {     std::ios_base::sync_with_stdio(false);     cin >> n;     for (int i = 0; i < n; i++) {       cin >> a[i];     }     for (int i = 0; i < n; i++) {       if (cnt.find(a[i]) != cnt.end()) {         cnt[a[i]]++;       } else         cnt[a[i]] = 1;       if (cnt[a[i]] == 4) {         writeans(a[i], a[i]);         continue;       }       if (pos.find(a[i]) == pos.end()) {         pos[a[i]] = i;         continue;       }       int left = pos[a[i]];       pos[a[i]] = i;       while (pointer > 0) {         int lastl = Mypair[pointer - 1].left;         int lastr = Mypair[pointer - 1].right;         if (lastl < left && left < lastr) {           writeans(Mypair[pointer - 1].value, a[i]);           break;         } else if (lastl >= left) {           pointer--;         } else {           Mypair[pointer].left = left;           Mypair[pointer].right = i;           Mypair[pointer].value = a[i];           pointer++;           break;         }       }       if (pointer == 0) {         Mypair[pointer].left = left;         Mypair[pointer].right = i;         Mypair[pointer].value = a[i];         pointer++;       }     }     cout << ans.size() << endl;     for (int i = 0; i < ans.size(); i++) cout << ans[i] <<    ;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int main() {     int num;     string str;     cin >> num;     cin >> str;     if (str[3] >=  6 ) str[3] =  0 ;     if (num == 12) {       if (str[0] >=  2  || (str[0] ==  1  && str[1] >  2 ) ||           (str[0] ==  0  && str[1] ==  0 )) {         str[0] =  0 ;         if (str[1] ==  0 ) str[0] =  1 ;       }     } else if (num == 24) {       if (str[0] >=  3  || (str[0] ==  2  && str[1] >=  4 )) str[0] =  0 ;     }     cout << str << endl;   }
#include <bits/stdc++.h>   int main() {     int vis[5] = {0};     int dir[5][5] = {{4, 3, 2}, {1, 4, 3}, {2, 1, 4}, {3, 2, 1}};     int viss[5] = {0};     for (int i = 0; i < 4; i++) {       for (int j = 0; j < 3; j++) {         int a;         scanf( %d , &a);         if (a) {           viss[dir[i][j]] = 1;           viss[i + 1] = 1;         }       }       int b;       scanf( %d , &b);       if (b) vis[i + 1] = 1;     }     int f = 0;     for (int i = 1; i <= 4; i++) {       if (vis[i] && viss[i]) {         f = 1;         break;       }     }     if (f)       printf( YES n );     else       printf( NO n );   }
#include <bits/stdc++.h>   using namespace std;   vector<int> pos[8];   vector<int> construct_vector(int a, int b, int c) {     vector<int> ret;     ret.push_back(a);     ret.push_back(b);     ret.push_back(c);     return ret;   }   long long dist(vector<int> p1, vector<int> p2) {     return (long long)(p1[0] - p2[0]) * (p1[0] - p2[0]) +            (long long)(p1[1] - p2[1]) * (p1[1] - p2[1]) +            (long long)(p1[2] - p2[2]) * (p1[2] - p2[2]);   }   map<long long, int> mpdist;   bool dfs(int k) {     if (k == 8) return true;     sort(pos[k].begin(), pos[k].end());     do {       bool f = true;       for (int i = 0; f && i < k; ++i)         if (pos[k] == pos[i]) f = false;       if (!f) continue;       for (int i = 0; i < k; ++i) ++mpdist[dist(pos[i], pos[k])];       if (mpdist.size() <= 3u && dfs(k + 1)) return true;       for (int i = 0; i < k; ++i) {         long long dis = dist(pos[i], pos[k]);         --mpdist[dis];         if (!mpdist[dis]) mpdist.erase(dis);       }     } while (next_permutation(pos[k].begin(), pos[k].end()));     return false;   }   int main() {     for (int i = 0; i < 8; ++i) {       int a, b, c;       scanf( %d%d%d , &a, &b, &c);       pos[i] = construct_vector(a, b, c);     }     if (dfs(0)) {       printf( YES n );       for (int i = 0; i < 8; ++i)         printf( %d %d %d n , pos[i][0], pos[i][1], pos[i][2]);     } else       printf( NO );     return 0;   }
#include <bits/stdc++.h>   using namespace std;   const int mod = 1e9 + 7;   const int max_n = (1 << 21) + 100;   vector<int> ans;   int a[max_n];   void de(int i) {     int l = i << 1;     int r = (i << 1) | 1;     if (a[l] == 0 && a[r] == 0) {       a[i] = 0;       return;     } else {       if (a[l] > a[r]) {         a[i] = a[l];         de(l);       } else {         a[i] = a[r];         de(r);       }     }     return;   }   int n, m;   long long sum;   int find(int i, int dep) {     int l = i << 1;     int r = (i << 1) | 1;     if (a[l] > a[r]) {       return find(l, dep + 1);     } else if (a[r] > a[l]) {       return find(r, dep + 1);     } else {       return dep;     }   }   void dfs(int x, int dep) {     if (a[x] == 0) {       return;     }     while (find(x, dep) > m) {       ans.push_back(x);       sum -= a[x];       de(x);     }     dfs(x << 1, dep + 1);     dfs((x << 1) | 1, dep + 1);   }   int main() {     int t;     int h, g;     scanf( %d , &t);     while (t--) {       sum = 0;       scanf( %d%d , &h, &m);       n = (1 << h) - 1;       for (int i = 1; i <= n; ++i) {         scanf( %d , &a[i]);         sum += a[i];       }       for (int i = n + 1; i <= (1 << (h + 1)) - 1; ++i) {         a[i] = 0;       }       dfs(1, 1);       printf( %lld n , sum);       for (int i = 0; i < ans.size(); ++i) {         printf( %d  , ans[i]);       }       printf(  n );       ans.clear();     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   const int p = 998244353, maxn = 1000011;   int Fact[maxn], nFact[maxn];   char s[maxn];   inline int C(int n, int m) {     if (n < m || m < 0) return 0;     return 1LL * Fact[n] * nFact[m] % p * nFact[n - m] % p;   }   int main() {     scanf( %s , s + 1);     int n = strlen(s + 1);     Fact[0] = 1;     for (int i = 1; i <= n; ++i) Fact[i] = 1LL * Fact[i - 1] * i % p;     nFact[0] = nFact[1] = 1;     for (int i = 2; i <= n; ++i) nFact[i] = 1LL * (p - p / i) * nFact[p % i] % p;     for (int i = 1; i <= n; ++i) nFact[i] = 1LL * nFact[i] * nFact[i - 1] % p;     static int sl[maxn], sq[maxn];     sl[0] = 0;     sq[0] = 0;     for (int i = 1; i <= n; ++i)       sl[i] = sl[i - 1] + (s[i] ==  ( ), sq[i] = sq[i - 1] + (s[i] ==  ? );     int ans = 0;     for (int qtol = 0; qtol <= sq[n]; ++qtol) {       int qtor = sq[n] - qtol;       int SR = (n - sl[n] - sq[n]) + qtor;       ans = (ans + 1LL * sl[SR] * C(sq[n], qtol)) % p;       ans = (ans + 1LL * sq[SR] * C(sq[n] - 1, qtol - 1)) % p;     }     printf( %d n , ans);   }
#include <bits/stdc++.h>   using namespace std;   long long K, statc;   int qc;   bool query(long long l, long long r) {     qc++;     assert(qc <= 4499);     cout << l <<     << r <<   n ;     fflush(stdout);     string ans;     cin >> ans;     if (l == r && ans[0] ==  Y ) {       exit(0);     }     if (ans[0] ==  B ) {       exit(0);     }     return ans[0] ==  Y ;   }   long long randrange(long long l, long long r) {     long long mod = r - l + 1;     return l + rand() % mod;   }   long long extl(long long x) { return max(1LL, x - K); }   long long extr(long long x) { return min(statc, x + K); }   int main() {     srand(time(NULL));     ios::sync_with_stdio(false);     cin >> statc >> K;     long long l = 1, r = statc;     while (true) {       long long w = r - l + 1;       if (w <= 7 * K) {         long long guess = randrange(l, r);         query(guess, guess);       } else {         long long mid = (l + r) / 2;         if (query(l, mid)) {           r = mid;         } else {           l = mid + 1;         }       }       l = extl(l);       r = extr(r);     }   }
#include <bits/stdc++.h>   using namespace std;   const int maxn = 1e6 + 10;   const int mod = 20010905;   const int inf = 0x3f3f3f3f;   const long long linf = 0x3f3f3f3f3f3f3f3f;   long long lowbit(long long x) { return x & (-x); }   long long qpow(long long a, long long b, long long c) {     long long res = 1;     a %= mod;     while (b) {       if (b & 1) res = (res * a) % c;       a = (a * a) % c;       b >>= 1;     }     return res % c;   }   long long qmul(long long a, long long b, long long c) {     long long res = 0;     while (b) {       if (b & 1) res = (res + a) % c;       a = (a + a) % c;       b >>= 1;     }     return res % c;   }   struct Bit {     long long Bit[maxn], N;     void addBit(long long x, long long v) {       x = N - x + 1;       while (x <= N) Bit[x] = max(Bit[x], v), x += lowbit(x);     }     long long qBit(long long x) {       x = N - x + 1;       long long res = -linf;       while (x) res = max(res, Bit[x]), x -= lowbit(x);       return res;     }   };   char s[maxn];   vector<int> e[maxn];   int pre[maxn], sz[maxn];   int fin(int x) { return pre[x] == x ? x : pre[x] = fin(pre[x]); }   int n, k;   void add(int x, int y) {     x = fin(x), y = fin(y);     if (x == y) return;     pre[x] = y;     sz[y] += sz[x];   }   int calc(int x) {     int y = fin(x + k);     x = fin(x);     return min(sz[x], sz[y]);   }   int main() {     scanf( %d%d , &n, &k);     scanf( %s , s + 1);     for (int i = 1; i <= k; i++) {       int kk, x;       scanf( %d , &kk);       while (kk--) {         scanf( %d , &x);         e[x].push_back(i);       }     }     sz[0] = inf;     for (int i = 1; i <= 2 * k; i++) pre[i] = i, sz[i] = (i <= k);     long long ans = 0;     for (int i = 1; i <= n; i++) {       if (e[i].size()) {         if (s[i] ==  1 ) {           if (e[i].size() == 1) {             ans -= calc(e[i][0]);             add(e[i][0], 0);             ans += calc(e[i][0]);           } else {             int x = e[i][0], y = e[i][1];             if (fin(x) != fin(y)) {               ans -= calc(x) + calc(y);               add(x, y), add(x + k, y + k);               ans += calc(x);             }           }         } else {           if (e[i].size() == 1) {             ans -= calc(e[i][0]);             add(e[i][0] + k, 0);             ans += calc(e[i][0]);           } else {             int x = e[i][0], y = e[i][1];             if (fin(x) != fin(y + k)) {               ans -= calc(x) + calc(y);               add(x, y + k), add(x + k, y);               ans += calc(x);             }           }         }       }       cout << ans << endl;     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   const long long N = 5e5 + 1;   long long arr[N];   long long n, k;   long long sum;   long long mnm = -1;   long long mxm = -1;   void input() {     cin >> n >> k;     for (long long i = 0; i < n; ++i) {       cin >> arr[i];       sum += arr[i];     }     sort(arr, arr + n);   }   void solve() {     long long K = k;     for (long long i = 0; i < n;) {       long long j = i;       for (; j < n && arr[i] == arr[j]; ++j)         ;       long long dif = arr[j] - arr[i];       long long cnt = j;       if (K >= dif * cnt) {         K -= dif * cnt;       } else {         mnm = arr[i] + K / j;         break;       }       i = j;     }     K = k;     for (long long i = n - 1; i >= 0;) {       long long j = i;       for (; j >= 0 && arr[i] == arr[j]; --j)         ;       long long dif = arr[i] - arr[j];       long long cnt = n - 1 - j;       if (K >= dif * cnt) {         K -= dif * cnt;       } else {         mxm = arr[i] - K / cnt;         break;       }       i = j;     }     if (mnm == -1) mnm = arr[n - 1];     if (mxm == -1) mxm = arr[0];     if (mnm >= mxm) {       if (sum % n) {         cout <<  1 n ;       } else {         cout <<  0 n ;       }     } else {       cout << mxm - mnm <<   n ;     }   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0), cout.tie(0);     input();     solve();   }
#include <bits/stdc++.h>   using namespace std;   int n, m, i, val[300005];   struct node {     multiset<int> val;     int p, v;     node *chd[26], *fail;     node() {       memset(chd, 0ll, sizeof(chd));       fail = 0ll;       p = v = 0;       val.clear();     }   };   node *root;   node *place[300005];   void resetAC() { root = new node(); }   char s[300005];   void insert() {     node *now = root;     int l = 0, len = strlen(s);     while (l < len) {       if (now->chd[s[l] -  a ] == NULL) now->chd[s[l] -  a ] = new node();       now = now->chd[s[l] -  a ];       l++;     }     now->p++;     place[i] = now;     now->val.insert(0);   }   queue<node *> qAC;   void buildAC() {     node *now, *q;     int i;     for (i = 0; i < 26; i++)       if (root->chd[i] != NULL) root->chd[i]->fail = root, qAC.push(root->chd[i]);     while (!qAC.empty()) {       now = qAC.front();       qAC.pop();       for (i = 0; i < 26; i++)         if (now->chd[i] != NULL) {           q = now->fail;           while (q != NULL && q->chd[i] == NULL) q = q->fail;           if (q == NULL)             now->chd[i]->fail = root;           else             now->chd[i]->fail = q->chd[i];           qAC.push(now->chd[i]);         }     }   }   int AC() {     node *now = root, *p;     int ans = -1, len = strlen(s);     for (int l = 0; l < len; l++) {       while (now != root && now->chd[s[l] -  a ] == NULL) now = now->fail;       now = (now->chd[s[l] -  a ] == NULL ? root : now->chd[s[l] -  a ]);       p = now;       while (p != NULL && p->v != i) {         if (!p->val.empty()) {           auto x = p->val.end();           --x;           ans = max(ans, *x);         }         p->v = i;         p = p->fail;       }     }     return ans;   }   char c;   int flag;   void read(int &x) {     x = 0;     c = getchar();     flag = 1;     while (c <  0  || c >  9 ) flag = (c ==  -  ? -1 : flag), c = getchar();     while (c >=  0  && c <=  9 ) x = x * 10 + c -  0 , c = getchar();     x *= flag;   }   int opt;   int main() {     resetAC();     read(n);     read(m);     for (i = 1; i <= n; i++) {       scanf( %s , s);       insert();     }     buildAC();     for (i = 1; i <= m; i++) {       read(opt);       if (opt == 1) {         int x, vl;         read(x);         read(vl);         place[x]->val.erase(place[x]->val.find(val[x]));         val[x] = vl;         place[x]->val.insert(val[x]);       }       if (opt == 2) {         scanf( %s , s);         cout << AC() << endl;       }     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   const double EPS = 1e-9;   const int INF = 2000;   int gauss(vector<vector<double> > a, vector<double> &ans) {     int n = (int)a.size();     int m = (int)a[0].size() - 1;     vector<int> where(m, -1);     for (int col = 0, row = 0; col < m && row < n; ++col) {       int sel = row;       for (int i = row; i < n; ++i)         if (abs(a[i][col]) > abs(a[sel][col])) sel = i;       if (abs(a[sel][col]) < EPS) continue;       for (int i = col; i <= m; ++i) swap(a[sel][i], a[row][i]);       where[col] = row;       for (int i = 0; i < n; ++i)         if (i != row) {           double c = a[i][col] / a[row][col];           for (int j = col; j <= m; ++j) a[i][j] -= a[row][j] * c;         }       ++row;     }     ans.assign(m, 0);     for (int i = 0; i < m; ++i)       if (where[i] != -1) ans[i] = a[where[i]][m] / a[where[i]][i];     for (int i = 0; i < n; ++i) {       double sum = 0;       for (int j = 0; j < m; ++j) sum += ans[j] * a[i][j];       if (abs(sum - a[i][m]) > EPS) return 0;     }     for (int i = 0; i < m; ++i)       if (where[i] == -1) return INF;     return 1;   }   double dp[123][2];   int vis[123][2];   int id[12][12];   int to[123];   double f(int n, int t) {     if (vis[n][t]) return dp[n][t];     vis[n][t] = 1;     dp[n][t] = 1e9;     double s = 0;     for (int i = 1; i <= 6; i++) {       s += f(n + i, 0);     }     s += 6;     s /= 6;     if (t == 1) {       dp[n][t] = s;     } else {       dp[n][t] = min(to[n] == n ? 1000000000. : f(to[n], 1), s);     }     return dp[n][t];   }   int main(int argc, char const *argv[]) {     cout << fixed << setprecision(8);     {       int cnt = 0;       for (int i = 0; i < 10; i += 2) {         for (int j = 0; j < 10; j++) {           id[i][j] = cnt++;         }         for (int j = 9; j >= 0; j--) {           id[i + 1][j] = cnt++;         }       }     }     for (int i = 9; i >= 0; i--) {       for (int j = 0; j < 10; j++) {         int x;         cin >> x;         to[id[i][j]] = id[i + x][j];       }     }     dp[99][0] = 0;     dp[98][0] = dp[97][0] = dp[96][0] = dp[95][0] = dp[94][0] = 6;     for (int i = 0; i < 6; i++) {       dp[99 - i][1] = dp[99 - i][0];       vis[99 - i][0] = vis[99 - i][1] = 1;     }     cout << f(0, 0) << endl;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   bool pr(int n) {     for (int i = 2; i <= sqrt(n); i++) {       if (n % i == 0) return false;     }     return true;   }   int main() {     int t;     cin >> t;     while (t--) {       int n;       cin >> n;       char a[51][51];       bool f = false;       for (int i = 0; i < n; i++) {         for (int j = 0; j < n; j++) {           cin >> a[i][j];         }       }       for (int i = 0; i < n - 1; i++) {         for (int j = 0; j < n - 1; j++) {           if ((a[i][j] ==  1  && (a[i + 1][j] ==  0  && a[i][j + 1] ==  0 ))) {             f = true;             break;           }         }         if (f == true) {           cout <<  NO  << endl;           break;         }       }       if (f == false) cout <<  YES  << endl;     }   }