Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- #define PB push_back
- using namespace std;
- typedef vector<int> lll;
- typedef long long ll;
- istream& operator >>(istream& stream,lll& a){
- string s;stream>>s;
- for(int i=s.size()-1;i>=0;i--)a.PB(s[i]-'0');
- return stream;}
- ostream& operator <<(ostream& stream,lll a){
- for(int i=a.size()-1;i>=0;i--)stream<<a[i];
- return stream;}
- bool operator >(lll a,lll b){
- if(a.size()>b.size())return true;
- if(a.size()<b.size())return false;
- for(int i=a.size()-1;i>=0;i--){
- if(a[i]>b[i])return true;
- if(a[i]<b[i])return false;}
- return false;}
- lll operator +(lll a,lll b){
- lll c;int i,r=0;
- for(i=0;i<a.size()||i<b.size();i++){
- if(i<a.size())r+=a[i];
- if(i<b.size())r+=b[i];
- c.PB(r%10); r/=10;}
- if(r)c.PB(r);
- return c;}
- lll operator -(lll a,lll b){
- lll c;int i,r=0;
- for(i=0;i<a.size();i++){
- r+=a[i];
- if(i<b.size())r-=b[i];
- if(r<0){c.PB(r+10);r=-1;}
- else{c.PB(r%10);r=0;}}
- while(c.size()>1&&c.back()==0)c.pop_back();
- return c;}
- lll operator *(lll a,ll b){
- lll c;int i;ll r=0;
- if(b==0){c.PB(0);return c;}
- for(i=0;i<a.size();++i){
- r+=a[i]*b;
- c.PB(r%10);r/=10;}
- while(r){c.PB(r%10);r/=10;}
- return c;}
- int main(){
- ll n,z;
- cin>>z>>n;
- lll a(1,z);
- while(n>1){n--;a=a*z;}
- cout<<a;
- return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement