malteklaes/cpp-code-code_search_net-style huggingface dataset:
#include <bits/stdc++.h>   #pragma GCC optimize(2)   using namespace std;   inline int read() {     char c = getchar();     int x = 0;     bool f = 0;     for (; !isdigit(c); c = getchar()) f ^= !(c ^ 45);     for (; isdigit(c); c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);     if (f) x = -x;     return x;   }   bool work() {     int a = read(), b = read();     if (a > b) swap(a, b);     if (a == 0) return (b == 0);     if (a * 2 < b) return 0;     if (a * 2 == b) return 1;     int c = (abs(b - a - a));     return (a + b) % 3 == 0;   }   signed main() {     int n = read();     while (n--)       if (work())         puts( YES );       else         puts( NO );     return 0;   }
#include <bits/stdc++.h>   using namespace std;   const long long N = 100010;   long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }   long long n, m, p, a[N], b[N], q[N], yue[N], miu[N], f[N], tot;   long long ans;   long long power(long long a, long long b, long long m) {     long long re = 1;     while (b) {       if (b & 1) re = (long long)re * a % m;       a = (long long)a * a % m;       b >>= 1;     }     return re;   }   long long calc(long long x) {     long long i, j, k, l;     for (i = 1; i <= tot; i++)       if (power(x, yue[i], p) == 1) return yue[i];   }   int main() {     long long i, j, k;     scanf( %I64d%I64d%I64d , &n, &m, &p);     for (i = 1; i * i <= p - 1; i++) {       if ((p - 1) % i == 0) {         yue[++tot] = i;         if (i * i < p - 1) yue[++tot] = (p - 1) / i;       }     }     sort(yue + 1, yue + tot + 1);     for (i = 1; i <= n; i++) scanf( %I64d , &a[i]);     for (i = 1, k = 0; i <= m; i++) {       scanf( %I64d , &j);       k = gcd(k, j);     }     k = gcd(k, p - 1);     for (i = 1; i <= n; i++) {       q[i] = calc(a[i]);       a[i] = (p - 1) * gcd(q[i], k) / q[i];     }     for (i = 1; i <= tot; i++)       for (j = 1; j <= n; j++)         if (yue[i] % a[j] == 0) {           f[i] = 1;           break;         }     for (i = 1; i <= tot; i++) {       ans += (f[i] - miu[i]) * ((p - 1) / yue[i]);       for (j = i + 1; j <= tot; j++)         if (yue[j] % yue[i] == 0) miu[j] += (f[i] - miu[i]);       miu[i] += (f[i] - miu[i]);     }     cout << ans << endl;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   const double eps = 1e-8;   const double pi = acos(-1.0);   int n, m;   bool check(int x) {     int a2 = x / 2, a3 = x / 3, a6 = x / 6;     a2 -= a6;     a3 -= a6;     if (max(n - a2, 0) + max(m - a3, 0) <= a6)       return true;     else       return false;   }   int main() {     cin >> n >> m;     int l = 1, r = 1e7;     int ans = -1;     while (l <= r) {       int mid = (l + r) / 2;       if (check(mid))         r = mid - 1;       else         l = mid + 1;     }     cout << l << endl;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   long long Pow_Mod(long long a, long long b) {     if (b == 0) return 1;     long long tmp = Pow_Mod(a, b / 2);     tmp = (tmp * tmp) % 1000003;     if (b % 2) return (tmp * a) % 1000003;     return tmp;   }   long long C(long long a, long long b) {     if (b == 0 || b == a) return 1;     long long ans = 1;     for (int i = 1; i <= b; i++) {       ans = (ans * (a - i + 1)) % 1000003;       ans = (ans * Pow_Mod(i, 1000003 - 2)) % 1000003;     }     return ans;   }   int main() {     long long a, b;     cin >> a >> b;     a += b;     cout << (C(a, b) - 1 + 1000003) % 1000003 << endl;     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     ;     long long t;     cin >> t;     while (t--) {       int n, k, x, rem;       cin >> n >> k;       x = k / (n - 1);       rem = k - x * (n - 1);       if (!rem)         cout << x * n - 1 <<   n ;       else         cout << x * n + rem <<   n ;     }   }
#include <bits/stdc++.h>   #pragma GCC optimize( Ofast )   #pragma GCC optimize( unroll-loops )   using namespace std;   using pii = pair<int, int>;   const int MOD = 1e9 + 7, N = 2e3 + 10;   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long n;     cin >> n;     vector<pair<long long, long long>> v(n);     for (long long i = 0; i < n; i++) {       long long x;       cin >> x;       long long cm = -1;       long long salary;       for (long long i = 0; i < x; i++) {         cin >> salary;         if (salary > cm) cm = salary;       }       v[i].first = cm;       v[i].second = x;     }     sort(v.begin(), v.end());     long long sum = 0;     for (long long i = 0; i < n; i++) {       sum += (v[n - 1].first - v[i].first) * v[i].second;     }     cout << sum;   }
#include <bits/stdc++.h>   using namespace std;   const int N = 123, BITS = 11, MAX = 7;   int c[N], num[N];   int a[MAX][MAX];   char s[N];   int bit(int x) {     int res = 0;     while (x != 0) {       res += x % 2;       x /= 2;     }     return res;   }   int main() {     int n;     scanf( %d , &n);     for (int i = 0; i < n; ++i) {       scanf( %s , s);       if (s[0] ==  R ) c[i] = 0;       if (s[0] ==  G ) c[i] = 1;       if (s[0] ==  B ) c[i] = 2;       if (s[0] ==  Y ) c[i] = 3;       if (s[0] ==  W ) c[i] = 4;       num[i] = s[1] -  1 ;     }     int m = 0;     for (int i = 0; i < n; ++i) {       if (a[c[i]][num[i]] == 0) {         ++m;         a[c[i]][num[i]] = 1;       }     }     int ans = 10;     for (int cnt = 0; cnt < (1 << BITS); ++cnt) {       int count = 0;       for (int i = 0; i < 5; ++i) {         for (int j = 0; j < 5; ++j) {           for (int k = 0; k < 5; ++k) {             for (int l = 0; l < 5; ++l) {               if (a[i][j] == 1 && a[k][l] == 1) {                 int tmp = 0;                 if (i != k)                   tmp = ((1 << (i + 5)) & cnt) || ((1 << (k + 5)) & cnt);                 int tmp2 = 0;                 if (j != l) tmp2 = ((1 << j) & cnt) || ((1 << l) & cnt);                 if (tmp || tmp2) ++count;               }             }           }         }       }       if (count == m * (m - 1)) {         int temp = bit(cnt);         if (ans > temp) ans = temp;       }     }     printf( %d n , ans);     return 0;   }
#include <bits/stdc++.h>   using namespace std;   bool graf[100][100];   int n, m;   bool visited[100];   bool spoken[100];   int stupid;   int tab[100];   int main() {     ios::sync_with_stdio(false);     cin >> n >> m;     for (int i = 0; i < n; i++) {       int x;       cin >> x;       if (x == 0) stupid++;       for (int j = 0; j < x; j++) {         cin >> tab[j];         tab[j]--;         spoken[tab[j]] = true;       }       for (int j = 0; j < x; j++) {         for (int q = j + 1; q < x; q++) {           graf[tab[j]][tab[q]] = true;           graf[tab[q]][tab[j]] = true;         }       }     }     queue<int> q;     int add = 0;     for (int i = 0; i < m; i++) {       if (!spoken[i] || visited[i]) continue;       q.push(i);       visited[i] = true;       add++;       while (!q.empty()) {         int v = q.front();         q.pop();         for (int j = 0; j < m; j++) {           if (graf[v][j] && !visited[j]) {             visited[j] = true;             q.push(j);           }         }       }     }     if (add > 0) add--;     stupid += add;     cout << stupid << endl;   }
#include <bits/stdc++.h>   using namespace std;   int a, b, n, m, l, t;   bool check(int r) {     if (a + 1ll * b * (r - 1) <= t &&         (1ll * a * (r - l + 1) +          1ll * b * (1ll * r * (r - 1) / 2 - 1ll * (l - 1) * (l - 2) / 2)) <=             1ll * m * t)       return 1;     else       return 0;   }   int main() {     scanf( %d %d %d , &a, &b, &n);     int res;     while (n--) {       scanf( %d %d %d , &l, &t, &m);       res = l;       if (check(res) == 0)         cout <<  -1  << endl;       else {         int low = l;         int mid;         int up = 1000100;         while (low <= up) {           mid = (low + up) / 2;           if (check(mid) == 1) {             res = mid;             low = mid + 1;           } else {             up = mid - 1;           }         }         printf( %d n , res);       }     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   int n, k;   int a[100005];   set<long long> present;   int ans;   int main() {     scanf( %d%d , &n, &k);     for (int i = 0; i < n; i++) scanf( %d , &a[i]);     sort(a, a + n);     for (int i = n - 1; i >= 0; i--) {       if (present.find((long long)a[i] * k) == present.end()) {         ans++;         present.insert(a[i]);       }     }     printf( %d n , ans);     return 0;   }
#include <bits/stdc++.h>   using namespace std;   template <class T>   void pp(T v) {     for (__typeof((v).begin()) it = (v).begin(); it != (v).end(); ++it)       cout << *it <<    ;     cout << endl;   }   template <class T>   void pp(T v, int n) {     for (int i = 0; i < (int)n; i++) cout << v[i] <<    ;     cout << endl;   }   const int INF = 1 << 28;   const double EPS = 1.0e-9;   bool solve(const vector<pair<int, string> > &data) {     const int n = data.size();     for (int i = 0; i < (int)n; i++) {       if (data[i].first > i) return false;     }     vector<int> height(n);     vector<int> ans;     for (int i = 0, h = n; i < n; i++, h--) {       ans.insert(ans.begin() + data[i].first, i);       height[i] = h;     }     for (int i = 0; i < (int)n; i++) {       cout << data[ans[i]].second <<     << height[ans[i]] << endl;     }     return true;   }   int main(void) {     int n;     cin >> n;     vector<pair<int, string> > data(n);     for (int i = 0; i < (int)n; i++) {       string name;       int a;       cin >> name >> a;       data[i] = make_pair(a, name);     }     sort((data).begin(), (data).end());     bool ans = solve(data);     if (ans == false) cout << -1 << endl;     return 0;   }
// Created by aadi      //  Never give up , Miracles never happen in real life.      #include<bits/stdc++.h>   using namespace std ;   #define FAST  ios_base::sync_with_stdio(false);cin.tie(NULL);   #define int long long int   #define MIN LLONG_MIN   #define MAX LLONG_MAX   #define set1D(a,val,n) { for(int i=0;i<n;i++) a[i]=val; }   #define set2D(a,val,n,m) { for(int i=0;i<n;i++) for(int j=0;j<m;j++)a[i][j]=val; }   const double pi = 3.14159265358979323846;   #define endl   n    #define db1(x) cout<<#x<< = <<x<<  n    #define db2(x,y) cout<<#x<< = <<x<< , <<#y<< = <<y<<  n    #define db3(x,y,z) cout<<#x<< = <<x<< , <<#y<< = <<y<< , <<#z<< = <<z<<  n    #define all(x) x.begin(),x.end()         int32_t main() {    //code;    FAST    int tt;    cin >> tt;    while (tt--) {     //write code     int n;     cin >> n;     string a, b;     cin >> a >> b;     int red = 0;     int blue = 0;     for (int i = 0; i < n; i++) {      if (a[i] -  0  > b[i] -  0 ) {       red++;      }      else if (a[i] -  0  < b[i] -  0 ) {       blue++;      }     }     if (red > blue) {      cout <<  RED ;     }     else if (blue > red) {      cout <<  BLUE ;     }     else {      cout <<  EQUAL ;     }     cout << endl;    }    return 0;   }
#include <bits/stdc++.h>   const int N = 2001, INF = 1e9 + 7;   long long g[N][N], f[N][N];   int main() {     int n, k;     std::cin >> n >> k;     std::string s;     std::cin >> s;     f[0][0] = g[0][0] = 1;     for (int i = 1; i <= n; ++i)       for (int j = 0; j <= k; ++j) {         g[i][j] = f[i - 1][j] * (s[n - i] -  a ) + g[i - 1][j];         f[i][j] = g[i][j];         for (int p = 1; p <= i + 1 - p && p * (i + 1 - p) <= j; ++p) {           f[i][j] += f[i - p][j - p * (i + 1 - p)] * ( z  - s[n - i + p - 1]);           if (p < i + 1 - p)             f[i][j] += f[p - 1][j - p * (i + 1 - p)] * ( z  - s[n - p]);         }         g[i][j] %= INF;         f[i][j] %= INF;       }     std::cout << f[n][k];     return 0;   }
#include <bits/stdc++.h>   using namespace std;   template <typename T>   void read(T &t) {     t = 0;     char ch = getchar();     int f = 1;     while ( 0  > ch || ch >  9 ) {       if (ch ==  - ) f = -1;       ch = getchar();     }     do {       (t *= 10) += ch -  0 ;       ch = getchar();     } while ( 0  <= ch && ch <=  9 );     t *= f;   }   int n, pos, ans[2010], vis[2010];   struct node {     long long x, y;     bool operator<(node t) {       if (x != t.x) return y < t.y;       return x < t.x;     }     node operator-(node t) { return (node){x - t.x, y - t.y}; }     long long operator*(node t) { return x * t.y - y * t.x; }   } d[2010];   long long t;   char s[2010];   int main() {     read(n);     for (int i = 1; i <= n; i++) read(d[i].x), read(d[i].y);     scanf( %s , s + 1);     for (int i = 1; i <= n; i++)       if (!pos || d[i] < d[pos]) pos = i;     ans[1] = pos;     vis[pos] = 1;     int tmp;     for (int i = 2; i < n; i++) {       tmp = 0;       for (int j = 1; j <= n; j++)         if (!vis[j]) {           t = (d[j] - d[pos]) * (d[tmp] - d[pos]);           if (!tmp || (s[i - 1] ==  L  && t > 0) || (s[i - 1] ==  R  && t < 0))             tmp = j;         }       ans[i] = pos = tmp;       vis[pos] = 1;     }     for (int i = 1; i <= n; i++)       if (!vis[i]) {         ans[n] = i;         break;       }     for (int i = 1; i <= n; i++) printf( %d  , ans[i]);     printf(  n );     return 0;   }
#include <bits/stdc++.h>   using namespace std;   template <typename T0, typename T1>   std::ostream& operator<<(std::ostream& os, const map<T0, T1>& v) {     for (typename map<T0, T1>::const_iterator p = v.begin(); p != v.end(); p++) {       os << p->first <<  :   << p->second <<    ;     }     return os;   }   template <typename T0, typename T1>   std::ostream& operator<<(std::ostream& os, const pair<T0, T1>& v) {     os << v.first <<  :   << v.second <<    ;     return os;   }   template <typename T>   std::ostream& operator<<(std::ostream& os, const vector<T>& v) {     for (int i = 0; i < (int)v.size(); i++) {       os << v[i] <<    ;     }     return os;   }   template <typename T>   std::ostream& operator<<(std::ostream& os, const vector<vector<T> >& v) {     for (int i = 0; i < (int)v.size(); i++) {       os << v[i] << endl;     }     return os;   }   template <typename T>   std::ostream& operator<<(std::ostream& os, const set<T>& v) {     vector<T> tmp(v.begin(), v.end());     os << tmp;     return os;   }   template <typename T>   std::ostream& operator<<(std::ostream& os, const deque<T>& v) {     vector<T> tmp(v.begin(), v.end());     os << tmp;     return os;   }   int main() {     long long N, W, H;     while (cin >> H >> W) {       vector<string> w(H);       for (int y = 0, _n = (H); (y) < (int)_n; ++y) cin >> w[y];       vector<vector<long long> > tb(H, vector<long long>(W));       vector<vector<long long> > tbX(H, vector<long long>(W));       vector<vector<long long> > tbY(H, vector<long long>(W));       for (int y = 0, _n = (H); (y) < (int)_n; ++y)         for (int x = 0, _n = (W); (x) < (int)_n; ++x) {           {             long long v = 0;             if (0 <= y - 1) v += tb[y - 1][x];             if (0 <= y - 1 && w[y - 1][x] ==  .  && w[y][x] ==  . ) v++;             if (0 <= x - 1) v += tb[y][x - 1];             if (0 <= x - 1 && w[y][x - 1] ==  .  && w[y][x] ==  . ) v++;             if (0 <= x - 1 && 0 <= y - 1) v -= tb[y - 1][x - 1];             tb[y][x] = v;           }           {             long long v = 0;             if (0 <= x - 1) v += tbY[y][x - 1];             if (0 <= y - 1 && w[y - 1][x] ==  .  && w[y][x] ==  . ) v++;             tbY[y][x] = v;           }           {             long long v = 0;             if (0 <= y - 1) v += tbX[y - 1][x];             if (0 <= x - 1 && w[y][x - 1] ==  .  && w[y][x] ==  . ) v++;             tbX[y][x] = v;           }         }       cin >> N;       for (int i = 0, _n = (N); (i) < (int)_n; ++i) {         long long y1, x1, y2, x2;         cin >> y1 >> x1 >> y2 >> x2;         y1--;         x1--;         y2--;         x2--;         long long v = tb[y2][x2];         if (0 <= y1 - 1) v -= tb[y1 - 1][x2];         {           long long vv = tbY[y1][x2];           if (0 <= x1 - 1) vv -= tbY[y1][x1 - 1];           v -= vv;         }         if (0 <= x1 - 1) v -= tb[y2][x1 - 1];         {           long long vv = tbX[y2][x1];           if (0 <= y1 - 1) vv -= tbX[y1 - 1][x1];           v -= vv;         }         if (0 <= x1 - 1 && 0 <= y1 - 1) v += tb[y1 - 1][x1 - 1];         cout << v << endl;       }     }     return 0;   }
#include <bits/stdc++.h>   using namespace std;   const int INF = 1e9 + 7;   int n, g, p, d, a, b, act, nxt;   long long res;   int Next[(1000000 + 6)];   pair<int, int> Stacje[(1000000 + 6)];   stack<int> S;   int main() {     scanf( %d %d %d , &d, &g, &n);     p = g;     for (int i = 1; i <= n; i++) {       scanf( %d %d , &a, &b);       Stacje[i] = make_pair(a, b);     }     Stacje[0] = make_pair(0, INF);     Stacje[n + 1] = make_pair(d, -INF);     sort(Stacje + 1, Stacje + n + 1);     for (int i = n + 1; i >= 0; i--) {       while (!S.empty() && Stacje[S.top()].second > Stacje[i].second) {         S.pop();       }       Next[i] = S.empty() ? -1 : S.top();       S.push(i);     }     while (act != n + 1) {       if (Stacje[Next[act]].first - Stacje[act].first <= g) {         int dis = Stacje[Next[act]].first - Stacje[act].first;         p -= dis;         if (p < 0) {           res += (-p) * (long long)Stacje[act].second;           p = 0;         }         act = Next[act];       } else {         int dis = Stacje[act + 1].first - Stacje[act].first;         if (dis > g) {           break;         }         res += (g - p) * (long long)Stacje[act].second;         p = g - dis;         act++;       }     }     printf( %lld n , act != n + 1 ? -1 : res);   }
#include <bits/stdc++.h>   using namespace std;   template <typename T>   void read(T &x) {     x = 0;     char c = getchar();     T sig = 1;     for (; !isdigit(c); c = getchar())       if (c ==  - ) sig = -1;     for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + c -  0 ;     x *= sig;   }   class Solution {    public:     void solve() {       int n;       read(n);       string s;       cin >> s;       string t(s);       for (int i = 0; i < n; ++i)         if (s[i] ==  ? ) s[i] =  0 , t[i] =  1 ;       vector<int> p(n + 2), q(n + 2);       for (int i = n; i >= 1; --i)         p[i] = s[i - 1] ==  0  ? p[i + 1] + 1 : 0,         q[i] = t[i - 1] ==  1  ? q[i + 1] + 1 : 0;       vector<int> np(n + 1), nq(n + 1);       for (int i = n, pp = 0x3f3f3f3f, qq = 0x3f3f3f3f, npp = 0x3f3f3f3f,                nqq = 0x3f3f3f3f;            i >= 1; --i) {         if (s[i - 1] ==  0 ) pp = i;         if (s[i - 1] ==  1 ) npp = pp;         np[i] = npp;         if (t[i - 1] ==  0 ) nqq = qq;         if (t[i - 1] ==  1 ) qq = i;         nq[i] = nqq;       }       printf( %d  , n);       for (int i = 2; i <= n; ++i) {         int cnt = 0, idx = 1, last = 0;         while (idx + i - 1 <= n) {           int delta = max(p[idx], q[idx]);           if (p[idx] <= i && np[last] == idx) np[last] = np[idx];           if (q[idx] <= i && nq[last] == idx) nq[last] = nq[idx];           last = idx;           if (delta >= i)             cnt += delta / i, idx += delta / i * i;           else             idx = min(np[idx], nq[idx]);         }         printf( %d  , cnt);       }     }   };   int main() {     Solution solution = Solution();     solution.solve();   }
#include <bits/stdc++.h>   using namespace std;   const int MOD = (int)1e9 + 7;   template <typename T>   static T aabs(T x) {     if (x < 0) return -x;     return x;   }   template <typename T>   static void read(T &S) {     char K[1000009];     scanf( %s , &K);     S = K;   }   template <typename T, typename U>   static void amax(T &x, U y) {     if (x < y) x = y;   }   template <typename T, typename U>   static void amin(T &x, U y) {     if (x > y) x = y;   }   template <typename T, typename U>   static void aswap(T &x, U &y) {     T temp;     temp = x;     x = y;     y = temp;   }   template <typename T, typename U>   static long long gcd(T a, U b) {     long long r;     while (b) {       r = a % b;       a = b;       b = r;     }     return a;   }   template <typename T, typename U>   static long long lcm(T a, U b) {     return a / gcd(a, b) * b;   }   template <typename T, typename U>   static long long fpow(T n, U k, int p = MOD) {     long long r = 1;     for (; k; k >>= 1) {       if (k & 1) r = r * n % p;       n = n * n % p;     }     return r;   }   const int N5 = 100009;   const int N6 = 1000009;   int st[2 * N5 * 4];   string s;   set<int> mst[200];   void build(int id, int l, int r) {     if (l == r) {       st[id] = 1;       return;     }     int mid = (l + r) / 2;     build(id * 2, l, mid);     build(id * 2 + 1, mid + 1, r);     st[id] = st[id * 2] + st[id * 2 + 1];   }   void update(int id, int l, int r, int pos, int value) {     if (r < pos || l > pos) return;     if (l == r) {       st[id] = value;       return;     }     int mid = (l + r) / 2;     update(id * 2, l, mid, pos, value);     update(id * 2 + 1, mid + 1, r, pos, value);     st[id] = st[id * 2] + st[id * 2 + 1];   }   int query(int id, int l, int r, int pos) {     if (l == r) return l;     int mid;     mid = (l + r) / 2;     if (pos > st[id * 2])       query(id * 2 + 1, mid + 1, r, pos - st[id * 2]);     else       query(id * 2, l, mid, pos);   }   void finish(int id, int l, int r) {     if (l == r) {       if (st[id]) printf( %c , s[l]);       return;     }     int mid;     mid = (l + r) / 2;     finish(id * 2, l, mid);     finish(id * 2 + 1, mid + 1, r);   }   int conv(char c) {     if (c >=  a  && c <=  z ) return c -  a ;     if (c >=  A  && c <=  z ) return c -  A  + 27;     return c -  0  + 55;   }   int main() {     int n, q;     scanf( %d%d , &n, &q);     string ss;     read(ss);     s =     + ss;     for (int i = 1; i <= n; i++) mst[conv(s[i])].insert(i);     for (int i = 0; i <= 100; i++) mst[i].insert(n + 1);     build(1, 1, n);     while (q--) {       int l, r;       string re;       char ch;       scanf( %d%d , &l, &r);       read(re);       ch = re[0];       l = query(1, 1, n, l);       r = query(1, 1, n, r);       set<int>::iterator it, ait;       it = mst[conv(ch)].lower_bound(l);       while (*it <= r) {         update(1, 1, n, *it, 0);         ait = it;         ++it;         mst[conv(ch)].erase(ait);       }     }     finish(1, 1, n);     return 0;     return 0;   }