整个部分没有用到 gets
但是洛谷本地
in:
123
123
out:
123
求救
#include <set>
#include <cmath>
#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
const int A = 1e7+10;
const int B = 1e6+10;
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
inline int read() {
char c = getchar();
int x = 0, f = 1;
for ( ; !isdigit(c); c = getchar()) if (c == '-') f = -1;
for ( ; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);
return x * f;
}
int n;
/*
先比这敲一遍板子 压位高精
*/
const int base=1e9;
struct Date
{
ll a[400];
Date(void) {for (int i=0;i<=400;i++) a[i]=0;}
Date(ll x)
{
for (int i=0;i<=400;i++) a[i]=0;
a[0]=x;
}
Date operator +(const Date oth) const
{
Date res=*this;
for (int i=0;i<400;i++)
{
res.a[i]+=oth.a[i];
if (res.a[i]>=base) res.a[i]-=base, ++res.a[i+1];
}
return res;
}
Date operator *(const int x) const
{
Date res=*this;
for (int i=0;i<400;i++) res.a[i]*=x;
for (int i=0;i<400;i++)
{
res.a[i+1]+=res.a[i]/base;
res.a[i]%=base;
}
return res;
}
Date operator /(const int x) const
{
ll lst=0;
Date res;
for (int i=399;i>=0;i--)
{
lst=lst*base+a[i];
res.a[i]=lst/x;
lst=lst%x;
}
return res;
}
void print() const
{
bool flag=0;
for (int i=399;i>=0;i--)
{
if (flag) printf("%09lld\r",(ll)a[i]);
else if (a[i]) printf("%lld\r",(ll)a[i]), flag=1;
}
if (!flag) printf("0");
// putchar(c);
}
/*
没有比较久自己写一个
*/
bool operator <(const Date oth) const
{
Date res=*this;
for (int i=399;i>=0;i--)
{
if (res.a[i]<oth.a[i]) return true;
}
return false;
}
};
int main()
{
int a, b;
scanf("%d%d",&a,&b);
Date beg(a);
Date peg(b);
beg=beg+peg;
beg.print();
}