#include<stdio.h>
#include<algorithm>
using namespace std;
class lll{
private:
int a[(int)1e5+7],len=0,flag=1;
public:
void operator=(const lll &w) {
flag=w.flag;
len=w.len;
for(int i=0;i<len;i++){
a[i]=w.a[i];
}
}
void scan(){
char c;
scanf("%c",&c);
if(c=='-'){
flag=0;
scanf("%c",&c);
}
while(c>='0'&&c<='9'){
a[len++]=c-'0';
scanf("%c",&c);
}
reverse(a,a+len);
}
void print(){
if(flag==0){
printf("-");
}
for(int i=len-1;i>=0;i--){
printf("%d",a[i]);
}
}
bool operator==(const lll &w)const{
if(flag!=w.flag){
return false;
}
if(len!=w.len){
return false;
}
for(int i=0;i<len;i++){
if(a[i]!=w.a[i]){
return false;
}
}
return true;
}
bool operator<(const lll &w)const{
if(flag<w.flag){
return true;
}
if(flag>w.flag){
return false;
}
if(len<w.len){
return true;
}
if(len>w.len){
return false;
}
for(int i=len-1;i>=0;i--){
if(a[i]<w.a[i]){
return true;
}
if(a[i]>w.a[i]){
return false;
}
}
return false;
}
lll operator+(const lll &w)const{
lll l;
int c=0;
l.len=max(len,w.len);
for(int i=0;i<l.len;i++){
l.a[i]=(a[i]+w.a[i]+c)%10;
c=(a[i]+w.a[i]+c)/10;
}
if(c){
l.a[l.len]=c;
l.len++;
}
return l;
}
lll operator-(const lll &w){
lll l,d,b,t;
int c=0;
d.flag=flag;
l.len=max(len,w.len);
d.len=len;
for(int i=0;i<len;i++){
d.a[i]=a[i];
}
b=w;
if(d<b){
l.flag=0;
t=b,b=d,d=t;
}
for(int i=0;i<l.len;i++){
if(d.a[i]-b.a[i]-c<0){
l.a[i]=d.a[i]+10-b.a[i]-c;
c=1;
}
else{
l.a[i]=d.a[i]-b.a[i]-c;
c=0;
}
}
for(int i=l.len-1;i>=0;i--){
if(l.a[i]!=0){
break;
}
l.len--;
}
return l;
}
};
int main(){
lll a,b,c;
a.scan();b.scan();
c=(a-b);
c.print();
return 0;
}
0分,把数据下载在IDE上对了