fork(2) download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int main(){
  5. long long p[19]={1,3,9,27,81,243,729,2187,6561,19683,59049,177147,531441,1594323,4782969,14348907,43046721,129140163,387420489};
  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. break;
  16. }
  17. }
  18. for(int k=0,x=liczba;k<=liczba/2;k++,x--){
  19. if(l-p[x]>=0){
  20. mozliwosci++;
  21. l=l-p[x];
  22. //cout<<" p[x] "<<p[x]<<" ";
  23. if(l-p[k]>=0&&p[k]!=p[x]){
  24. mozliwosci++;
  25. l=l-p[k];
  26. // cout<<" p[k] "<<p[k]<<" ";
  27. }
  28. }
  29.  
  30. }
  31.  
  32. cout<<mozliwosci<<endl;
  33. mozliwosci=0;
  34. }
  35.  
  36. }
Success #stdin #stdout 0.01s 5324KB
stdin
3
10
20
30
stdout
2
3
2