Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long int ll;
- #define fi first
- #define se second
- #define gcd __gcd
- const int N=200050,M=1000000007;
- const ll INF=1e18+7;
- int ton(string s){
- int ans=0;
- for(int i=0;i<s.size();++i){
- ans*=10;
- ans+=(s[i]-'0');
- }
- return ans;
- }
- string tos(int x){
- if (x==0) return "0";
- string s="";
- while(x){
- s+=(char)(x%10+'0');
- x/=10;
- }
- reverse(s.begin(),s.end());
- return s;
- }
- bool cmp(string a,string b){ //a>b
- if(a.size()==b.size()) return a>b;
- return a.size()>b.size();
- }
- long long snum(string a){
- stringstream ss(a);
- long long num;
- ss>>num;
- return num;
- }
- string mul(string a,string b){
- if(a=="0"||b=="0") return "0";
- int n=a.size(),m=b.size(),carry=0;
- string ans="";
- vector<int>res(n+m,0);
- reverse(a.begin(),a.end());
- reverse(b.begin(),b.end());
- for(int i=0;i<n;++i){
- for(int j=0;j<m;++j){
- res[i+j]+=(a[i]-'0')*(b[j]-'0')+carry;
- carry=res[i+j]/10;
- res[i+j]%=10;
- }
- if(carry>0){
- res[i+m]+=carry;
- carry=0;
- }
- }
- for(int i=0;i<n+m;++i) ans.pb(char(res[i]+'0'));
- reverse(ans.begin(),ans.end());
- while(*ans.begin()=='0') ans.erase(ans.begin());
- return ans;
- }
- string sub(string a,string b){
- if(a==b) return "0";
- bool ok=cmp(a,b);
- string ans="";
- int digit,carry=0,n,m;
- if(ok) swap(a,b);
- n=a.size(); m=b.size();
- reverse(a.begin(),a.end());
- reverse(b.begin(),b.end());
- for(int i=m;i<n;++i) b.pb('0');
- for(int i=0;i<n;++i){
- digit=(a[i]-'0')-(b[i]-'0')-carry;
- if(digit<0){
- carry=1;
- digit=10+digit;
- }
- else{
- carry=0;
- }
- ans.pb(char(digit+'0'));
- }
- reverse(ans.begin(),ans.end());
- while(*ans.begin()=='0') ans.erase(ans.begin());
- if(ok) ans="-"+ans;
- return ans;
- }
- string add(string a,string b){
- if(a.size()<b.size()) swap(a,b);
- int n=a.size(),m=b.size(),digit,carry=0;
- string ans="";
- reverse(a.begin(),a.end());
- reverse(b.begin(),b.end());
- for(int i=m;i<n;++i) b+='0';
- for(int i=0;i<n;++i){
- digit=(a[i]-'0')+(b[i]-'0')+carry;
- carry=digit/10;
- digit%=10;
- ans.pb(char(digit+'0'));
- }
- if(carry>0) ans.pb(char(carry+'0'));
- reverse(ans.begin(),ans.end());
- return ans;
- }
- pair<string,ll> div_small(string a,ll b){ // val and mod
- ll num=0;
- int n=a.size(),pos;
- for(int i=0;i<n;++i){
- num=num*10+(a[i]-'0');
- if(num>=b){
- pos=i+1;
- break;
- }
- }
- if(num<b) return {"0",num};
- string ans="";
- ans.pb(char(num/b+'0'));
- num%=b;
- for(int i=pos;i<n;++i){
- num=num*10+(a[i]-'0');
- ans.pb(char(num/b+'0'));
- num%=b;
- }
- return {ans,num};
- }
- pair<string,string> div_big(string a,string b){
- string num="";
- int n=a.size(),pos;
- for(int i=0;i<n;++i){
- num.pb(a[i]);
- if(!cmp(num,b)){
- pos=i+1;
- break;
- }
- }
- if(cmp(num,b)) return {"0",num};
- string ans="",tmp;
- for(int i=100;i>0;--i){
- tmp=mul(to_string(i),b);
- if(!cmp(num,tmp)){
- ans+=to_string(i);
- num=sub(num,tmp);
- if(num=="0") num.clear();
- break;
- }
- }
- for(int i=pos;i<n;++i){
- num.pb(a[i]);
- if(cmp(num,b)){
- ans.pb('0');
- continue;
- }
- for(int j=100;j>0;--j){
- tmp=mul(to_string(j),b);
- if(!cmp(num,tmp)){
- ans+=to_string(j);
- num=sub(num,tmp);
- if(num=="0") num.clear();
- break;
- }
- }
- }
- return {ans,num};
- }
- ll mod(string a,ll b){
- ll num=0,n=a.size();
- for(int i=0;i<n;++i){
- num=(num*10+(a[i]-'0'))%b;
- }
- return num;
- }
- ll large_gcd(string a,ll b){
- return gcd(mod(a,b),b);
- }
- int main(){
- ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(NULL);
- string a,b;
- int k;
- fflush(stdin); cin>>a;
- fflush(stdin); cin>>b;
- cout<<cmp(a,b);
- return 0;
- }
- /*
- ==================================+
- INPUT: |
- ------------------------------ |
- ------------------------------ |
- ==================================+
- OUTPUT: |
- ------------------------------ |
- ------------------------------ |
- ==================================+
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement