Guest User

Untitled

a guest
Sep 28th, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int bin(long long int a[], int n, int t){
  7. int l=0,d=n-1;
  8.  
  9. while(l<d){
  10. int m=(l+d)/2;
  11. if(a[m]>t) d=m-1;
  12. else if( a[m]==t) {
  13. return m;
  14. }
  15. else l=m+1;
  16. }
  17. if(a[l]>t) return --l;
  18. return l;
  19. }
  20.  
  21.  
  22.  
  23. int main(){
  24. string as;
  25. int k,y;
  26. cin>>as>>y>>k;
  27.  
  28. int n=as.size();
  29. long long int a[n+1], b[n+1], c[n+1];
  30. c[0]=1;
  31. a[1]=1; //nula na kraju
  32. b[1]=1; //jedan na kraju
  33. c[1]=2;
  34.  
  35. for(int i=2; i<n+1; i++){
  36. a[i]=a[i-1]+b[i-1];
  37. b[i]=a[i-1];
  38. c[i]=a[i]+b[i];
  39. }
  40.  
  41. long long int sum=0;
  42.  
  43. for(int i=0; i<n; i++){
  44. if(as[i]=='1') sum+=c[n-i-1];
  45. }
  46.  
  47. cout<<sum<<endl;
  48.  
  49. //drugi dio
  50.  
  51. if(k>c[n]-1){
  52. cout<<"ne postoji";
  53. return 0;
  54. }
  55.  
  56. vector<int> v;
  57.  
  58. while(k>0){
  59. int p=bin(c, n, k);
  60. v.push_back(p);
  61. k=k-c[p];
  62. }
  63.  
  64. int brojac=v.size()-1;
  65.  
  66. string kraj="";
  67. for(int i=0; i<n; i++){
  68. if(i==v[brojac]){
  69. kraj="1"+kraj;
  70. brojac--;
  71. }
  72. else kraj="0"+kraj;
  73. }
  74. cout<<kraj;
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment