Advertisement
Saleh127

UVA 11161

Nov 12th, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int t; cin>>t; for(int cs=1;cs<=t;cs++)
  5. string fact[10005],sum[10005];
  6.  
  7. string div(string a,ll x)
  8. {
  9. ll r=0,i,j,k,l;
  10. string s;
  11. for(i=0; i<a.size(); i++)
  12. {
  13. r=r*10+a[i]-'0';
  14. s+=(r/x)+'0';
  15. r%=x;
  16. }
  17. for(i = 0; i <s.size(); i++)
  18. {
  19. if(s[i]!= '0')
  20. {
  21. return s.substr(i);
  22. }
  23. }
  24. return "0";
  25. }
  26.  
  27. string addd(string a,string c)
  28. {
  29.  
  30. ll s1,s2,l,i,j,k=0;
  31. string sum="";
  32.  
  33. reverse(a.begin(),a.end());
  34. reverse(c.begin(),c.end());
  35.  
  36. s1=a.size();
  37. s2=c.size();
  38. l=max(s1,s2);
  39.  
  40. for(i=0; i<l; i++)
  41. {
  42. if(i<s1)
  43. {
  44. k+=(a[i]-'0');
  45. }
  46. if(i<s2)
  47. {
  48. k+=(c[i]-'0');
  49. }
  50. sum+=((k%10)+'0');
  51. k/=10;
  52. }
  53.  
  54. if(k)
  55. {
  56. sum+=(k+'0');
  57. }
  58. reverse(sum.begin(),sum.end());
  59.  
  60. for(i = 0; i <sum.size(); i++)
  61. {
  62. if(sum[i]!= '0')
  63. {
  64. return sum.substr(i);
  65. }
  66. }
  67. return "0";
  68. }
  69.  
  70. void precal()
  71. {
  72. fact[0]=fact[1]=fact[2]="1";
  73. sum[0]=sum[1]="0",sum[2]="1";
  74. for(ll i=3;i<=1505;i++)
  75. {
  76. fact[i]=addd(fact[i-1],fact[i-2]);
  77. sum[i]=addd(fact[i],sum[i-1]);
  78. }
  79. }
  80.  
  81. int main()
  82. {
  83. ios_base::sync_with_stdio(0);
  84. cin.tie(0);
  85. cout.tie(0);
  86.  
  87. precal();
  88.  
  89. ll n,c=1,i;
  90. while(cin>>n && n)
  91. {
  92. cout<<"Set "<<c++<<":"<<endl;
  93. if(n==1) cout<<0<<endl;
  94. else
  95. {
  96. string xx;
  97. xx=addd(sum[n-1],div(addd("1",fact[n]),2));
  98. cout<<xx<<endl;
  99. }
  100.  
  101. }
  102.  
  103.  
  104. return 0;
  105. }
  106.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement