#pragma GCC optmize(2,3,"Ofast","inline")
#include<bits/stdc++.h>
#define int long long
#define max(a,b) ((a) > (b) ? (a) : (b))
#define min(a,b) ((a) < (b) ? (a) : (b))
#define abs(a) ((a) > 0 ? (a) : 0 - (a))
#define in(a,b,c) ((a) >= (b) && (a) <= (c))
#define isint(a) (floor(a) == a)
#define endl '\n'
using namespace std;
#define mod 1000000007
int n,k;
struct large_int{
bool neg = false;
int a[10000];
void clear(){
memset(a,0,sizeof(a));
}
void change(string s){
if(s.find("-") != s.npos){
s.erase(0,1);
neg = true;
}
a[0] = s.size();
for(int i = s.size();i >= 1;i--)a[i] = s[s.size() - i - 1] - '0';
}
void print(){
if(neg)cout << "-";
for(int i = a[0];i >= 1;i--)cout << a[i];
}
};return false;
}
bool operator >=(large_int a,large_int b){
if(a.neg ^ b.neg)return !a.neg;
if(a.a[0] != b.a[0])return a.a[0] > b.a[0];
for(int i = a.a[0];i >= 1;i--){
if(a.a[i] != b.a[i])return a.a[i] > b.a[i];
}
return true;
}
large_int operator -(large_int a,large_int b){
int tw = 0;
large_int c;
for(int i = 1; i <= max(a.a[0],b.a[0]) + 1; i++) {
c.a[i] = (a.a[i] - b.a[i] - tw + 10) % 10;
tw = a.a[i] - b.a[i] - tw < 0;
}
c.a[0] = max(a.a[0],b.a[0]) + 1;
while(!c.a[c.a[0]] && c.a[0] > 1)c.a[0]--;
return c;
}
large_int operator /(large_int a,large_int b){
large_int tmp,c;
c.clear();
c.a[0] = a.a[0] - b.a[0] + 1;
for(int i = c.a[0];i > 0;i--){
memset(tmp.a,0,sizeof(tmp.a));
for(int j = 1;j <= b.a[0];j++){
tmp.a[i + j - 1] = b.a[i];
}
tmp.a[0] = b.a[0] + i - 1;
while(a >= tmp){
a = a - tmp;
c.a[i]++;
}
}
while(c.a[c.a[0]] == 0 && c.a[0] > 0) c.a[0]--;
return c;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
large_int a,b;
string s,ss;
cin >> s >> ss;
a.change(s),b.change(ss);
large_int c = a / b;
c.print();
}
运行后会卡住,请求大佬帮忙