Advertisement
Guest User

dawd

a guest
Dec 13th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | None | 0 0
  1. #include <cstdio>
  2. #include <iomanip>
  3. #define NMax 105
  4. using namespace std;
  5. typedef int HUGE[NMax];
  6. int i;
  7. char c;
  8. HUGE v,u;
  9. void sum(HUGE A, HUGE B);
  10. int binSearch(HUGE A, HUGE B)
  11. {
  12.     HUGE mid = (sum(A,B));
  13.     atrib(mid, sum(A,B));
  14.     if(compare(mult(mid, mid), v)==1 || compare(mult(mid, mid), v)==0) //daca mid la patrat este mai mare decat v atunci mid-- si e val gasita
  15.     {
  16.         subs(mid, 1);
  17.         return mid;
  18.     }else
  19.     {
  20.         return binSearch(mid, B);
  21.     }
  22. }
  23. void sum(HUGE A, HUGE B)
  24. {
  25.     if(compare(A,B)==-1)
  26.         return sum(B,A);
  27.     else
  28.     {
  29.         HUGE Sum;
  30.         for(i=1; i<=A[0]; i++)
  31.         {
  32.             int aux = A[i] + B[i];
  33.             Sum[i] = aux%10;
  34.             Sum[i+1]+=aux/10;
  35.         }
  36.         return Sum;
  37.     }
  38. }
  39. void read()
  40. {
  41.     v[0]=0;
  42.     i=1;
  43.     while(scanf("%c",&c)==1)
  44.         {v[i] = c-'0'; v[0]++;i++;}
  45.         v[0]--;
  46.     int st=1, dr=v[0];
  47.     while(st<dr)
  48.         swap(v[st], v[dr]), st++, dr--;
  49. }
  50. int main()
  51. {
  52.     freopen("free.in","r", stdin);
  53.     freopen("free.out","w", stdout);
  54.     read();
  55.     binSearch(v, u);
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement