Select solution language
Write solution here.
Ta dễ dà ng thấy ở những vị trà mà i%3==0 thì sẽ có 4 chữ số thõa mãn, các vị trà còn lại sẽ có
3 chữ số thõa mãn. do đó ta tìm số lần xuất hiện các vị trà chia hết cho 3-đặt là k ,
và các vị trà còn lại- đặt là x.
ta có kết quả sẽ là 3^x * 4^k; (3 mũ x nhân với 4 mũ k )
ở đây ta phải tạo má»™t hà m tÃnh mÅ© theo phương pháp lÅ©y thừa nhị phân :> .
sau đó tÃnh kết quả thôi .
tham khảo cách viết hà m mũ tại đây : https://blog.28tech.com.vn/luy-thua-nhi-phan
Bên dưới sẽ là code để các bạn tham khảo :) :
```cpp
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,c;
ll nhan(ll a,ll b)
{
if(b==0)return 0;
if(b==1)return a;
ll x=nhan(a,b/2);
x=(x+x)%c;
if(b&1)return (x+a)%c;
else return x;
}
ll mu(ll a,ll b)
{
if(b==0)return 1;
if(b==1)return a;
ll x=mu(a,b/2);
x=nhan(x,x);
if(b&1)return nhan(x,a);
else return x;
}
void input()
{
cin>>n;
}
void solve()
{
c=1e9+7;
ll ans=1;
ll k=n/3;
ll x=2*k+n%3;
ans=nhan(ans,mu(4,k));
ans=nhan(ans,mu(3,x));
cout<<ans;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
input();
solve();
return 0;
}