这段代码什么都没干就
Process returned -1073741571 (0xC00000FD) execution time : 0.868 s
代码:
#include <iostream>
#include <string>
inline long long max(long long x, long long y){
return x>y?x:y;
}
struct Bigint{
int l, a[100005];
Bigint(std::string str){
for(int i=0;i<str.size();i++)
a[i+1] = str[i]-'0';
l = str.size();
}
inline void print(){
for(long long i=max(l, 1ll);i>=1;i--)
std::cout << a[i];
}
inline void flatten(int L){
l = L;
for(int i=1;i<=L;i++)
a[i+1] += a[i]/10, a[i] %= 10;
for(;!a[l];)
l--;
}
};
inline Bigint operator*(Bigint a, long long b){
for(int i=1;i<=a.l;i++)
a.a[i] = a.a[i]*b;
a.flatten(a.l+30);
return a;
}
inline bool operator < (Bigint a, Bigint b){
if(a.l!=b.l)
return b.l > a.l;
for(int i=a.l;i>=1;i--)
if(b.a[i]>a.a[i])
return true;
return false;
}
inline bool operator == (Bigint a, Bigint b){
if(a.l!=b.l)
return false;
for(int i=a.l;i>=1;i--)
if(a.a[i]!=b.a[i])
return false;
return true;
}
inline bool operator > (Bigint a, Bigint b){
if(a==b || a<b)
return false;
return true;
}
std::string n, m;
inline bool check(Bigint x, Bigint y){
if(x>y)
return true;
return false;
}
int main(){
std::cin >> n >> m;
Bigint a(n), b(m), c("0");
long long l = 1, r = (1<<40), mid;
while(l<=r){
mid = l+((r-l)>>1);
c = m*mid;
if(check(c, n))
r = mid-1;
else
l = mid+1;
}
mid = l+((r-l)>>1);
std::cout << mid;
return 0;
}
这是什么原因,怎么改?