Advertisement
Mohammad_Dipu_Sultan

UVA 10862 Connect the Cable Wires

Nov 13th, 2021
808
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.73 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long           ll;
  5. typedef unsigned long long  ull;
  6. typedef double              ld;//%Lf
  7. #define ff                  first
  8. #define ss                  second
  9. #define pb                  push_back
  10. #define mp                  make_pair
  11. #define ppb                 pop_back
  12. #define in                  insert
  13. #define sz(a)               int((a).size())
  14. #define vi                  vector<int>
  15. #define vl                  vector<ll>
  16. #define vvi                 vector<vector<int> >
  17. #define pii                 pair<int,int>
  18. #define piii                pair<int,pair<int,int> >
  19. #define pll                 pair<ll,ll>
  20. #define vii                 vector<pii>
  21. #define vll                 vector<pll>
  22. #define viii                vector<piii>
  23. #define YES                 cout << "YES\n"
  24. #define NO                  cout << "NO\n"
  25.  
  26. #define scl(n)              scanf("%lld",&n)
  27. #define scll(x,y)           scanf("%lld %lld",&x,&y)
  28. #define gtl(x)              getline(cin, (x))
  29.  
  30. #define f0(b)               for(int i=0;i<(b);i++)
  31. #define f00(b)              for(int j=0;j<(b);j++)
  32. #define f1(b)               for(int i=1;i<=(b);i++)
  33. #define f11(b)              for(int j=1;j<=(b);j++)
  34. #define f2(a,b)             for(int i=(a);i<=(b);i++)
  35. #define f22(a,b)            for(int j=(a);j<=(b);j++)
  36. #define RFOR(i,x,y)         for(int i=x;i>=y;i--)
  37. #define all(v)              v.begin(),v.end()
  38. #define rall(v)             v.rbegin(),v.rend()
  39. #define unq(v)              sort(all(v)),(v).resize(unique(all(v))-v.begin())
  40. #define present(c,x)        ((c).find(x) != (c).end())
  41. #define cpresent(c,x)       (find(all(c),x) != (c).end())
  42. #define min_ele(v)          (*min_element(all(v)))
  43. #define max_ele(v)          (*max_element(all(v)))
  44. #define cnt_ele(v, x)       (count(all(v), x))
  45. #define sum_ele(v)          (accumulate(all(v),0))
  46. #define reversed(s)         reverse(s.begin(), s.end())
  47.  
  48. #define testcase            ll t; cin>>t; while (t--)
  49. #define vout(v)             for(int ind=0;ind<v.size();ind++){ cout<<v[ind]; if(ind<v.size()-1) cout<<' '; else cout<<endl;}
  50. #define arrout(arr,i,x,y)   for(int i=x;i<=y;i++){ cout<<arr[i]; if(i<y) cout<<' '; else cout<<endl;}
  51. #define PI                  acos(-1)
  52. #define CLR(x, y)           memset(x, y, sizeof(x))
  53. #define Precision(a)        cout << fixed << setprecision(a)
  54. #define BITCH_FAST()        ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0) //Don't use scanf/printf
  55. #define MAXP                100006
  56. #define INF9                2147483647
  57. #define INF18               9223372036854775806
  58. #define MOD                 1e9+7//10000007 // For big mod
  59. #define EPS                 1e-7
  60.  
  61. template <typename T> T Sqr(T x) { T n = x * x ; return n ;}
  62. template <typename T> T Pow(T B,T P){ if(P==0) return 1; if(P&1) return B*Pow(B,P-1);  else return Sqr(Pow(B,P/2));}
  63. template <typename T> T Abs(T a) {if(a<0)return -a;else return a;}
  64. template <typename T> T Gcd(T a,T b){if(a<0)return Gcd(-a,b);if(b<0)return Gcd(a,-b);return (b==0)?a:Gcd(b,a%b);} // better than __gcd
  65. template <typename T> T Lcm(T a,T b) {if(a<0)return Lcm(-a,b);if(b<0)return Lcm(a,-b);return a*(b/Gcd(a,b));}
  66. template <typename T> T power(T n, T p){ T res = 1;while(p > 0){if(p & 1)res *= n;n *= n;p >>= 1;}return res;}
  67. template <typename T> T BigMod (T b,T p,T m){if (p == 0) return 1;if (p%2 == 0){T s = BigMod(b,p/2,m);return ((s%m)*(s%m))%m;}return ((b%m)*(BigMod(b,p-1,m)%m))%m;}
  68. template <typename T> inline string ToBinary(T n) {string r ;while(n != 0) {r = ( n % 2 == 0 ? "0" : "1" ) + r ; n >>= 1;} return r ;}
  69. long long BinaryToDecimal(string s) {int len = s.size();long long n = 0, p = 1;for (int i = len - 1; i >= 0; i-- , p *= 2) n += p * (s[i] - '0');return n;}
  70. int Strtoint(string str){stringstream ss(str);int x = 0;ss >> x ;return x ;}
  71. string Intostr(int x){stringstream ss; ss << x; string str = ss.str(); return str;}
  72.  
  73. /*----------------------Graph Moves----------------*/
  74. int ROW[]={+1,-1,+0,+0};
  75. int COL[]={+0,+0,+1,-1};
  76.  
  77. int X[]={+0,+0,+1,-1,-1,+1,-1,+1};   // Kings Move
  78. int Y[]={-1,+1,+0,+0,+1,+1,-1,-1};  // Kings Move
  79.  
  80. int KX[]={-2, -2, -1, -1,  1,  1,  2,  2};  // Knights Move
  81. int KY[]={-1,  1, -2,  2, -2,  2, -1,  1}; // Knights Move
  82.    
  83. string fib[MAXP];
  84. string Add_sum(string str1,string str2)
  85. {
  86.  
  87.     if (str1.length() > str2.length())
  88.         swap(str1, str2);
  89.  
  90.  
  91.     int n1 = str1.length(), n2 = str2.length();
  92.     string str = "";
  93.  
  94.     reverse(str1.begin(), str1.end());
  95.     reverse(str2.begin(), str2.end());
  96.     ll carry = 0;
  97.     for (int i=0; i<n1; i++)
  98.     {
  99.         // Do school mathematics, compute sum of
  100.         // current digits and carry
  101.         int sum = ((str1[i]-'0')+(str2[i]-'0')+carry);
  102.         str.push_back(sum%10 + '0');
  103.  
  104.         // Calculate carry for next step
  105.         carry = sum/10;
  106.     }
  107.  
  108.     // Add remaining digits of larger number
  109.     for (int i=n1; i<n2; i++)
  110.     {
  111.         int sum = ((str2[i]-'0')+carry);
  112.         str.push_back(sum%10 + '0');
  113.         carry = sum/10;
  114.     }
  115.  
  116.     // Add remaining carry
  117.     if (carry)
  118.         str.push_back(carry+'0');
  119.  
  120.     // reverse resultant string
  121.     reverse(str.begin(), str.end());
  122.  
  123.     return str;
  124. }
  125.  
  126. void Fibs()
  127. {
  128.     fib[0]="0";
  129.     fib[1]="1";
  130.     for(ll i=2; i<=4005; i++)
  131.     {
  132.         fib[i]=Add_sum(fib[i-1], fib[i-2]);
  133.     }
  134. }
  135.  
  136. int main()
  137. {
  138.     BITCH_FAST();
  139.     #ifdef FLAME
  140.         clock_t tStart = clock();
  141.         freopen("input.txt", "r", stdin);
  142.         freopen("output.txt", "w", stdout);
  143.     #endif
  144.     Fibs();
  145.     ll n;
  146.     while(cin >> n && n)
  147.     {
  148.         cout<< fib[n*2] << endl;
  149.     }
  150.  
  151.     #ifdef FLAME
  152.         fprintf(stderr, "\n>> Runtime: %.10fs\n", (double) (clock() - tStart) / CLOCKS_PER_SEC);
  153.     #endif
  154.     return 0;
  155. }
  156.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement