fork(5) download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int main(){
  5. long long p[20]={1,3,9,27,81,243,729,2187,6561,19683,59049,177147,531441,1594323,4782969,14348907,43046721,129140163,387420489,1162261467};
  6. long long n,l;
  7. long long liczba=0;
  8. long long mozliwosci=0;
  9. cin>>n;
  10. for(int i=0;i<n;i++){
  11. cin>>l;
  12. for(int j=0;j<=19;j++){
  13. if(l-p[j]<0){
  14. liczba=j-1;
  15. // cout<<" liczba: "<<liczba<<endl;
  16. break;
  17.  
  18. }
  19. }
  20. for(int k=0,x=liczba;k<=liczba/2;k++,x--){
  21. if(l-p[x]>=0){
  22. // cout<<" p[x] "<<p[x]<<" "<<endl;
  23. // cout<<" l=l-p[x]= "<<l-p[x]<<endl;
  24. mozliwosci++;
  25. l=l-p[x];
  26. // cout<<" l: "<<l<<endl;
  27. }
  28. if(l-p[k]>=0&&p[k]!=p[x]){
  29. // cout<<" k: "<<k<<endl;
  30. // cout<<" p[k]: "<<p[k]<<endl;
  31. // cout<<" x: "<<x<<endl;
  32. // cout<<" p[x]: "<<p[x]<<endl;
  33. // cout<<" l-p[k]= "<<l-p[k]<<endl;
  34. mozliwosci++;
  35. l=l-p[k];
  36. // cout<<" l= "<<l<<endl;
  37. // cout<<" p[k] "<<p[k]<<" ";
  38. }
  39.  
  40. }
  41.  
  42. cout<<mozliwosci<<endl;
  43. mozliwosci=0;
  44. }
  45.  
  46. }
Success #stdin #stdout 0.01s 5388KB
stdin
2
1000000000
31
stdout
19
3