Advertisement
Mihai_Preda

Untitled

Mar 18th, 2021
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <unordered_set>
  4.  
  5. using namespace std;
  6.  
  7. bool exista(int x, int v[], int k)
  8. {
  9.     for(int i = 1; i <= k; i++)
  10.         if(v[i] == x)
  11.             return true;
  12.     return false;
  13. }
  14.  
  15. // k este numarul de elemente din v
  16. void gaseste_aproape(int n, int v[], int &k)
  17. {
  18.     int put = 1, c, x;
  19.     while(put < n)
  20.     {
  21.         c = (n / put) % 10;
  22.         if(c < 9)
  23.         {
  24.             x = n + put;
  25.             if(exista(x, v, k) == false)
  26.                 v[++k] = x;
  27.         }
  28.         if(c > 1 || (c == 1 && n > put*10))
  29.         {
  30.             x = n - put;
  31.             if(exista(x, v, k) == false)
  32.                 v[++k] = x;
  33.         }
  34.         put *= 10;
  35.     }
  36. }
  37.  
  38. int main()
  39. {
  40.     ifstream in("aproape.in");
  41.     ofstream out("aproape.out");
  42.     int n, c;
  43.     in >> c >> n;
  44.     int v[1000], k = 0;
  45.     int v2[1000], k2 = 0;
  46.     if(c == 1)
  47.     {
  48.         if(n == 0)
  49.             out << 1;
  50.         else
  51.         {
  52.             int cnt = 0;
  53.             do
  54.             {
  55.                 n = n / 10;
  56.                 cnt++;
  57.             }
  58.             while(n > 0);
  59.             out << cnt;
  60.         }
  61.     }
  62.     else if(c == 2)
  63.     {
  64.         gaseste_aproape(n, v, k);
  65.         out << k;
  66.     }
  67.     else
  68.     {
  69.         gaseste_aproape(n, v, k);
  70.         for(int i = 1; i <= k; i++)
  71.             gaseste_aproape(v[i], v2, k2);
  72.         out << k2;
  73.     }
  74.     return 0;
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement