malteklaes/cpp-code-code_search_net-style huggingface dataset:
#include <bits/stdc++.h>   using namespace std;   long long int pc;   void PrintCase() { printf( Case %lli:  , ++pc); }   long long int GCD(long long int a, long long int b) {     if (a < b) swap(a, b);     if (b == 1) return 1;     if (!b) return a;     if (!(a % b))       return b;     else       return (a, a % b);   }   long long int LCM(long long int a, long long int b) {     return (a * b) / GCD(a, b);   }   long long int bigmod(long long int n, long long int p) {     if (p == 0) return 1;     if (p == 1) return (n + 1000000007) % 1000000007;     if (p % 2)       return (bigmod(n, p - 1) * n + 1000000007) % 1000000007;     else {       long long int x = bigmod(n, p / 2);       return (x * x + 1000000007) % 1000000007;     }   }   long long int modinverse(long long int n) {     return bigmod(n, 1000000007 - 2) % 1000000007;   }   bool sc[100007];   vector<long long int> pr;   void seieve() {     for (long long int i = 2; i <= 100007; i++) {       if (!sc[i]) {         pr.push_back(i);         for (long long int j = i * i; j <= 100007; j += i) sc[j] = 1;       }     }   }   pair<long long int, long long int> pf[100007];   void pri_fact(long long int n) {     for (long long int i = 0; i < pr.size() && n != 1; i++) {       pf[i].first = pr[i];       long long int c = 0;       while (!(n % pr[i])) {         n /= pr[i];         c++;       }       pf[i].second = c;     }   }   vector<long long int> de;   void devisors(long long int n) {     long long int i;     for (i = 1; i <= sqrt(n); i++) {       if (!(n % i) && i != sqrt(n)) {         de.push_back(i);         de.push_back(n % i);       }     }     if ((i - 1) * (i - 1) == n) de.push_back(i - 1);     sort(de.begin(), de.end());   }   int main(int argc, char const *argv[]) {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     long long int n, h, a, b, k, i, p, q, u, v;     cin >> n >> h >> a >> b >> k;     for (i = 0; i < k; i++) {       cin >> p >> q >> u >> v;       long long int x = abs(p - u);       if (!x) {         cout << abs(q - v) << endl;       } else if (q < a && v < a) {         cout << x + (a - q) + (a - v) << endl;       } else if (q > b && v > b) {         cout << x + (q - b) + (v - b) << endl;       } else {         cout << x + abs(q - v) << endl;       }     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   static const double EPS = 1e-10;   template <typename T, typename S>   vector<T>& operator<<(vector<T>& a, S b) {     a.push_back(b);     return a;   }   template <typename T>   void operator>>(vector<T>& a, int b) {     while (b--)       if (!a.empty()) a.pop_back();   }   bool isprime(int n) {     if (n < 2) return false;     for (int i = 2; i * i <= n; i++)       if (n % i == 0) return false;     return true;   }   long long b_pow(long long x, long long n) {     return n ? b_pow(x * x, n / 2) * (n % 2 ? x : 1) : 1ll;   }   string itos(int n) {     stringstream ss;     ss << n;     return ss.str();   }   vector<int> pos[10];   int main() {     ios_base::sync_with_stdio(false);     string s;     int n, m;     cin >> n >> m;     cin >> s;     int e[10] = {0};     for (int i = 0; (int)i < (int)s.size(); i++) {       e[s[i] -  0 ]++;       pos[s[i] -  0 ].push_back(i);     }     string ans;     vector<int> can;     int mi = INT_MAX;     pair<int, string> W = make_pair(INT_MAX,  ~ );     for (int X = 0; X < 10; X++) {       if (e[X] < m) {         string mur = s;         int sum = 0;         int t = m - e[X];         for (int i = 1; i <= 9; i++) {           int x = X - i;           int y = X + i;           if (y <= 9) {             int j = 0;             while (j < pos[y].size() && t) {               mur[pos[y][j]] = X +  0 ;               sum += i;               t--;               j++;             }           }           if (x >= 0) {             int j = pos[x].size() - 1;             while (j >= 0 && t) {               mur[pos[x][j]] = X +  0 ;               sum += i;               t--;               j--;             }           }         }         W = min(W, make_pair(sum, mur));       } else if (e[X] >= m) {         cout << 0 << endl;         cout << s << endl;         return 0;       }     }     cout << W.first << endl;     cout << W.second << endl;   }
#include <bits/stdc++.h>   using namespace std;   mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());   const long long mod = 1000000007;   const long long INF18 = 1000000000000000000;   long long n;   long long a[1010];   bool ok = false;   void rec(long long depth, long long cnt, long long sum) {     if (ok) return;     if (depth >= n) {       if (cnt < 1) return;       if (sum == 0) ok = true;       return;     }     rec(depth + 1, cnt, sum);     rec(depth + 1, cnt + 1, sum + a[depth]);     rec(depth + 1, cnt + 1, sum - a[depth]);   }   void solve() {     cin >> n;     for (long long i = 0; i < n; i++) cin >> a[i];     for (long long i = 0; i < n; i++) {       if (a[i] == 0) {         cout <<  YES n ;         return;       }       for (long long j = 0; j < n; j++) {         if (i == j) continue;         if (a[i] == a[j]) {           cout <<  YES n ;           return;         }       }     }     ok = false;     rec(0, 0, 0);     if (ok)       cout <<  YES n ;     else       cout <<  NO n ;   }   int32_t main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long t;     cin >> t;     while (t--) {       solve();     }   }
#include <bits/stdc++.h>   using namespace std;   int FuN(long long n) {     string s;     while (n != 0) {       int ch = (n % 2);       s += ch +  0 ;       n /= 2;     }     int x = -1;     for (int i = 0; i < s.size(); i++) {       if (s[i] ==  1 ) x = i + 1;     }     return x;   }   int main() {     int t, n, i, j;     t = 1;     cin >> t;     while (t--) {       long long ans = 0, fg = 1, a[200005], cnt = 0, x;       cin >> n;       map<long long, long long> m;       for (i = 1; i <= n; i++) {         cin >> a[i];         x = FuN(a[i]);         m[x]++;       }       for (auto it : m) {         ans += (it.second * (it.second - 1)) / 2;       }       cout << ans << endl;     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   template <class T>   T gcd(T a, T b) {     return b ? gcd(b, a % b) : a;   }   const double EPS = 1e-9;   const double PI = acos(-1.);   const int INF = 1e9;   const int MAXN = 2e5 + 5;   const long long MOD = 1e9 + 7;   void output_path(int n, int a, int b, int c, int d) {     cout << a <<     << c <<    ;     for (int i = (1); i <= (int)(n); i++) {       if (i != a && i != b && i != c && i != d) {         cout << i <<    ;       }     }     cout << d <<     << b << endl;   }   void solve() {     int n, k, a, b, c, d;     cin >> n >> k >> a >> b >> c >> d;     if (n == 4 || k <= n) {       cout << -1 << endl;       return;     }     output_path(n, a, b, c, d);     output_path(n, c, d, a, b);   }   int main() {     int t = 1;     while (t--) {       solve();     }   }
#include <bits/stdc++.h>   using ll = long long;   using namespace std;   bool is_valid_streak(map<ll, ll>& unique_counts) {     if (unique_counts.size() == 2 && unique_counts.begin()->first == 1 &&         unique_counts.begin()->second == 1) {       return true;     } else if (unique_counts.size() == 2 &&                unique_counts.begin()->first + 1 ==                    unique_counts.rbegin()->first &&                unique_counts.rbegin()->second == 1) {       return true;     }     return false;   }   int main() {     ll n;     cin >> n;     vector<ll> a(n);     map<ll, ll> counts;     map<ll, ll> unique_counts;     set<ll> unique_values;     for (ll i = 0; i < n; i++) {       cin >> a[i];     }     ll ans = 0;     for (ll i = 0; i < n; i++) {       if (counts[a[i]] != 0) {         unique_counts[counts[a[i]]]--;         if (unique_counts[counts[a[i]]] == 0) {           unique_counts.erase(counts[a[i]]);         }       }       counts[a[i]]++;       unique_counts[counts[a[i]]]++;       unique_values.insert(a[i]);       if (unique_values.size() == 1) {         ans = i + 1;       } else if (unique_values.size() == i + 1) {         ans = i + 1;       } else if (is_valid_streak(unique_counts)) {         ans = i + 1;       }     }     cout << ans << endl;   }
#include <bits/stdc++.h>   using namespace std;   inline int read() {     int num = 0, w = 0;     char ch = 0;     while (!isdigit(ch)) {       w |= ch ==  - ;       ch = getchar();     }     while (isdigit(ch)) {       num = (num << 3) + (num << 1) + (ch ^ 48);       ch = getchar();     }     return w ? -num : num;   }   int n, m;   vector<int> c[1005], r[1005];   char ch[1005][1005];   bool vis[1005], vis2[1005];   int main() {     n = read(), m = read();     int numj = 0, numi = 0;     for (int i = 1; i <= n; i++) {       for (int j = 1; j <= m; j++) {         cin >> ch[i][j];         if (ch[i][j] ==  # ) {           c[i].push_back(j);           r[j].push_back(i);           if (!vis[j]) {             numj++;             vis[j] = true;           }           if (!vis2[i]) {             vis2[i] = true;             numi++;           }         }       }     }     int tag;     for (int i = 1; i <= n; i++) {       for (int j = 1; j <= m; j++) {         if (ch[i][j] ==  . ) {           if (c[i].size()) {             int len = c[i].size();             if (j > c[i][len - 1] || j < c[i][0])               tag = 1;             else {               cout << -1;               return 0;             }           }           if (r[j].size()) {             int len = r[j].size();             if (i > r[j][len - 1] || i < r[j][0])               tag = 1;             else {               cout << -1;               return 0;             }           }         }       }     }     int pre, aft, minl = 1005, maxl = 0, ans = 0, rest = 0;     for (int i = 1; i <= n; i++) {       pre = 0;       for (int j = 1; j <= m; j++) {         if (ch[i][j] ==  # ) {           if (!pre) pre = j;           if (j == m || ch[i][j + 1] ==  . ) aft = j;         }       }       if (!pre) {         rest++;         continue;       }       if (minl == 0) {         minl = pre;         maxl = aft;         ans++;       } else if (pre > maxl) {         ans++;         minl = pre;         maxl = aft;       } else if (aft < minl) {         minl = pre;         maxl = aft;         ans++;       } else {         maxl = max(maxl, aft);         minl = min(minl, pre);       }     }     if (numj == m && rest) {       cout << -1;       return 0;     }     rest = 0;     for (int i = 1; i <= m; i++) {       int flag = 0;       for (int j = 1; j <= n; j++) {         if (ch[j][i] ==  # ) {           flag = 1;           break;         }       }       if (!flag && numi == n) {         cout << -1;         return 0;       }     }     cout << ans;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int t;     cin >> t;     while (t--) {       int n, max = 0, count1 = 0;       cin >> n;       vector<int> v;       for (int i = 0; i < n; i++) {         int x;         cin >> x;         v.push_back(x);         if (max < x) {           max = x;         }       }       int c = v[0];       for (int i = 0; i < v.size(); i++) {         if (v[i] == c) {           count1++;         }         c = v[i];       }       if (count1 == n) {         cout <<  0  << endl;       } else {         vector<int> v1(10000);         map<int, int> mp;         long long int sum;         for (int i = 0; i < n; i++) {           sum = v[i];           for (int j = i + 1; j < n; j++) {             sum = sum + v[j];             if (sum <= 8000) {               v1[sum] = 1;             }           }         }         int count = 0;         for (int i = 0; i < n; i++) {           if (v1[v[i]]) {             count++;           }         }         cout << count << endl;       }     }   }
#include <bits/stdc++.h>   using namespace std;   namespace jumpmelon {   long long divfloor(long long a, long long b) {     long long k = a / b;     if (k * b > a) k--;     return k;   }   long long divceil(long long a, long long b) {     long long k = a / b;     if (k * b < a) k++;     return k;   }   void work() {     long long n, i_l, i_r, i_k;     scanf( %lld%lld%lld%lld , &n, &i_l, &i_r, &i_k);     long long d = i_l <= i_r ? i_r - i_l + 1 : i_r + n - i_l + 1;     long long s = i_k - d, v = n - d + 1, ans = -1;     if (n <= 1000000) {       for (long long r = 0; r <= n; r++) {         long long a = max(0LL, r - v), b = min(d, r);         long long mink = max(0LL, divceil(s - b, n + r));         long long maxk = divfloor(s - a, n + r);         if (mink <= maxk) ans = max(ans, r);       }     } else {       for (long long k = 0; k * n <= s; k++) {         long long t = s - k * n;         long long minr = 0, maxr = n;         if (k) maxr = min(maxr, divfloor(t, k));         maxr = min(maxr, divfloor(t + v, k + 1));         if (k)           minr = max(minr, divceil(t - d, k));         else if (t > d)           continue;         minr = max(minr, divceil(t, k + 1));         if (minr <= maxr) ans = max(ans, maxr);       }     }     printf( %lld n , ans);   }   }  // namespace jumpmelon   int main() {     jumpmelon::work();     return 0;   }
#include <bits/stdc++.h>   #pragma GCC optimize( O3 )   using namespace std;   const int N = 1e5 + 10;   multiset<int> ms;   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     int n;     cin >> n;     for (int i = 0; i < n; i++) {       int x;       cin >> x;       ms.insert(x);     }     int cur = 1;     while (!ms.empty()) {       if (cur <= *ms.begin()) {         ms.erase(ms.find(*ms.begin()));         cur++;       } else {         ms.erase(ms.find(*ms.begin()));       }     }     cout << cur << endl;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int dp[100][100];   struct point {    public:     int f, t;     point() {}     point(int a, int b) { f = a, t = b; }   };   int main() {     int X, k;     cin >> X >> k;     int val, sum = 0;     vector<pair<int, int>> a, b;     for (int i = 0; i < (X); i++) {       cin >> val;       sum += val;       a.push_back(make_pair(val, i + 1));     }     sort((a).begin(), (a).end());     int cnt = 0;     while (k--) {       int di = a[X - 1].first - a[0].first;       if (di > 1) {         a[X - 1].first--;         a[0].first++;         b.push_back(make_pair(a[X - 1].second, a[0].second));         sort((a).begin(), (a).end());         cnt++;       } else         break;     }     cout << a[X - 1].first - a[0].first <<     << cnt << endl;     for (int j = 0; j < (cnt); j++)       cout << b[j].first <<     << b[j].second << endl;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   const int maxn = 300005;   const int maxm = 5005;   int gcd(int a, int b) {     if (b == 0) return a;     return gcd(b, a % b);   }   int main() {     int n;     scanf( %d , &n);     int a[maxn];     bool exist[maxm];     for (int i = 0; i < maxm; ++i) exist[i] = true;     int i = 2;     while (i < maxm) {       int j = i + i;       if (exist[i]) {         while (j < maxm) {           exist[j] = false;           j += i;         }       }       i += 1;     }     vector<int> primes;     for (int i = 2; i < maxm; ++i)       if (exist[i]) {         primes.push_back(i);       }     for (int i = 0; i < n; ++i) scanf( %d , a + i);     int cur_gcd = gcd(a[0], a[1]);     for (int i = 2; i < n; ++i)       if (cur_gcd != 1) cur_gcd = gcd(cur_gcd, a[i]);     for (int i = 0; i < n; ++i) a[i] = a[i] / cur_gcd;     vector<int> nums;     for (int i = 0; i < n; ++i) {       int cur = a[i];       for (int j = 0; j < primes.size(); ++j)         if (primes[j] > cur)           break;         else if (cur % primes[j] == 0) {           nums.push_back(primes[j]);           while (cur % primes[j] == 0) {             cur = cur / primes[j];           }         }       if (cur > 1) nums.push_back(cur);     }     sort(nums.begin(), nums.end());     int ans = 0;     int left = 0, right = 0;     while (right < nums.size()) {       while (right < nums.size() && nums[right] == nums[left]) right++;       if (right - left > ans) {         ans = right - left;       }       left = right;     }     if (ans == 0 || ans == n)       cout << -1 << endl;     else       cout << n - ans << endl;   }
#include <bits/stdc++.h>   using namespace std;   int a[300010];   int main() {     int t, n;     cin >> t;     while (t--) {       cin >> n;       int prvi = -1, br_jednakih = 1, maxi = -1;       for (int i = 0; i < n; i++) {         cin >> a[i];         maxi = max(maxi, a[i]);         if (i == 0) {           prvi = a[i];           continue;         }         if (a[i] == prvi) {           br_jednakih++;         }       }       if (br_jednakih == n) {         cout << -1 << endl;         continue;       }       if (a[0] == maxi && a[1] != a[0]) {         cout << 1 << endl;         continue;       }       bool da = false;       for (int i = 1; i < n - 1; i++) {         if (a[i] == maxi && (a[i + 1] != maxi || a[i - 1] != maxi) && !da) {           cout << i + 1 << endl;           da = true;           break;         }       }       if (da) continue;       if (a[n - 1] == maxi && a[n - 2] != maxi) {         cout << n << endl;       }     }     return 0;   }
#include <bits/stdc++.h>   void parse(int size, std::string& input, int& pos, int depth, int& max_depth,              std::vector<std::vector<std::string> >& comments) {     if (size <= pos) {       return;     }     if (depth > max_depth) {       max_depth = depth;       comments.push_back(std::vector<std::string>());     }     int end = pos;     while (input[end++] !=  , ) {     }     comments[depth].push_back(input.substr(pos, end - pos - 1));     pos = end;     while (end < size && input[end++] !=  , ) {     }     if (end == size) {       ++end;     }     int children = std::stoi(input.substr(pos, end - pos - 1));     pos = end;     for (int i = 0; i < children; ++i) {       parse(size, input, pos, depth + 1, max_depth, comments);     }   }   int main() {     std::string input;     std::cin >> input;     std::vector<std::vector<std::string> > comments;     int max_depth = -1, pos = 0, size = input.size();     while (pos < size) {       parse(size, input, pos, 0, max_depth, comments);     }     std::cout << max_depth + 1 << std::endl;     bool not_first;     for (std::vector<std::string>& level : comments) {       not_first = false;       for (std::string& comment : level) {         if (not_first) {           std::cout <<    ;         } else {           not_first = true;         }         std::cout << comment;       }       std::cout << std::endl;     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int n, CA, CB;   struct point {     int x, y;     bool operator<(const point &p) const { return x != p.x ? x < p.x : y < p.y; }   } st[201000];   int BX[201000], EX[201000], BY[201000], EY[201000];   long long res;   void Pro(vector<point> &w, int *B, int *E) {     int i;     int top = 0;     for (auto &tp : w) {       while (top && st[top].x + st[top].y >= tp.x + tp.y) top--;       if (top && st[top].y - st[top].x <= tp.y - tp.x) continue;       st[++top] = tp;     }     int pv = 1;     for (i = 1; i <= 200020; i++) {       while (pv < top &&              st[pv].y + abs(i - st[pv].x) >= st[pv + 1].y + abs(i - st[pv + 1].x))         pv++;       B[i] = st[pv].y + abs(i - st[pv].x);     }     top = 0;     for (auto &tp : w) {       while (top && st[top].y - st[top].x <= tp.y - tp.x) top--;       if (top && st[top].y + st[top].x >= tp.y + tp.x) continue;       st[++top] = tp;     }     pv = 1;     for (i = 1; i <= 200020; i++) {       while (pv < top &&              st[pv].y - abs(i - st[pv].x) <= st[pv + 1].y - abs(i - st[pv + 1].x))         pv++;       E[i] = st[pv].y - abs(i - st[pv].x);       if (B[i] > E[i]) B[i] = 1, E[i] = 0;     }   }   struct AA {     int t, y, ck;     bool operator<(const AA &p) const { return t < p.t; }   } T[401000];   int BIT[201000][2];   void Add(int a, int ck, int b) {     while (a <= 200020) {       BIT[a][ck] += b;       a += (a & -a);     }   }   int Sum(int a, int ck) {     if (a < 0) return 0;     int r = 0;     while (a) {       r += BIT[a][ck];       a -= (a & -a);     }     return r;   }   void Do(vector<point> w, int ck) {     if (w.empty()) return;     int i;     sort(w.begin(), w.end());     Pro(w, BX, EX);     for (i = 0; i < w.size(); i++) swap(w[i].x, w[i].y);     sort(w.begin(), w.end());     Pro(w, BY, EY);     int cnt = 0;     for (i = 1; i <= 200020; i++) {       BIT[i][0] = BIT[i][1] = 0;       T[cnt++] = {BY[i], i, 1};       T[cnt++] = {EY[i] + 1, i, -1};     }     sort(T, T + cnt);     int pv = 0;     for (i = 1; i <= 200020; i++) {       while (pv < cnt && T[pv].t <= i) {         Add(T[pv].y, T[pv].y % 2, T[pv].ck);         pv++;       }       if (BX[i] > EX[i]) continue;       res += Sum(EX[i], (ck + i) % 2) - Sum(BX[i] - 1, (ck + i) % 2);     }   }   int main() {     int i, x, y;     scanf( %d , &n);     vector<point> A, B;     for (i = 1; i <= n; i++) {       scanf( %d%d , &x, &y);       x += 1e5 + 10;       y += 1e5 + 10;       if ((x + y) % 2) {         A.push_back({x, y});       } else {         B.push_back({x, y});       }     }     Do(A, 0);     Do(B, 1);     printf( %lld n , res);   }
#include <bits/stdc++.h>   using namespace std;   long long n, h;   long long r(long long l, long long s, long long e, long long d) {     if (s + 1 == e) return 0;     long long m = 1 + (s + e) >> 1;     long long k =         (n < m ? (d ? (1ll << (h - l)) : 1) : (d ? 1 : (1ll << (h - l))));     if (n < m) return r(l + 1, s, m, 1) + k;     return r(l + 1, m, e, 0) + k;   }   int main() {     cin >> h >> n;     --n;     cout << r(0, 0, 1ll << h, 0);   }
#include <bits/stdc++.h>   using namespace std;   int ar[200010];   vector<int> ans;   void solve() {     int n, a, b, k, cnt = 0;     cin >> n >> a >> b >> k;     string s;     cin >> s;     int nxt = n + 1;     for (int i = n; i > 0; i--) {       if (s[i - 1] ==  1 ) {         cnt += (nxt - i - 1) / b;         nxt = i;       }       ar[i] = nxt;     }     cnt += (nxt - 1) / b;     int last = 0;     if (cnt < a) {       printf( 0 n );       return;     }     for (int i = 1; i <= n; i++) {       if (s[i - 1] ==  1 ) {         last = i;         continue;       }       if (i - last == b) {         cnt--;         ans.push_back(i);         last = i;         if (cnt < a) break;       }     }     printf( %d n , ans.size());     for (int i = 0; i < ans.size(); i++) {       printf( %d  , ans[i]);     }     printf(  n );   }   int main() {     int t = 1;     for (int i = 1; i <= t; i++) {       solve();     }   }
#include <bits/stdc++.h>   using namespace std;   int main() {     std::ios::sync_with_stdio(false);     int n, d, h;     cin >> n >> d >> h;     if (d > 2 * h || (d == 1 && (n - 1 > d))) {       cout << -1 << endl;     } else {       for (int i = 1; i <= h; i++) {         cout << i <<     << i + 1 << endl;       }       if (d > h) {         cout << 1 <<     << h + 2 << endl;         for (int i = h + 2; i <= d; i++) {           cout << i <<     << i + 1 << endl;         }       }       if (n - 1 > d) {         if (h > 1) {           for (int i = d + 2; i <= n; i++) {             cout << 2 <<     << i << endl;           }         } else {           for (int i = d + 2; i <= n; i++) {             cout << 1 <<     << i << endl;           }         }       }     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int main() {     int n;     int a[105];     cin >> n;     for (int i = 0; i < n; i++) cin >> a[i];     int c = 0;     for (int i = 0; i < n;) {       if (a[i] == 1) {         while (a[i] == 1 || a[i + 1] == 1) {           c++;           i++;           if (i == n) break;         }       }       i++;     }     cout << c << endl;     return 0;   }