WA的点显示too long on line 1 ,是回车和文件结束符的问题吗
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef struct Bigint
{
int a[500010];
int len;
int& operator[](int i)
{
return a[i];
}
}Bigint;
int T,F;
Bigint t, y, x;
void zhy(Bigint &y, Bigint &x)
{
int len = y.len;
int a = y[len], flag = 0;
while (y[len] >= a && len > 0) {
flag++;
len--;
}
if (flag == y.len) {
if (x[y.len])F = -1;
x.len = y.len;
x[x.len] = a;
}
else {
if (a == 1)
{
x.len = y.len - 1;
x[x.len] = 9;
}
else
{
x.len = y.len;
x[x.len] = a-1;
}
}
int b = x[x.len];
for (int i = 1; i <= x.len; i++)y[i] -= b;
for (int i = 1; i <= y.len; i++)
{
if (y[i] < 0)
{
y[i] += 10;
y[i + 1]--;
}
while (y[y.len] == 0)y.len--;
}
}
int main()
{
cin >> T;
getchar();
for (int i = 0; i < T; i++)
{
t.len = 0;
memset(t.a, 0, sizeof(t.a));
y.len = 0;
memset(y.a, 0, sizeof(y.a));
x.len = 0;
memset(x.a, 0, sizeof(x.a));
int len = 1;
char ch;
while ((ch=getchar()) != '\n'&&ch!=EOF) {
t[len] = (int)ch-'0';
len++;
}
len--;
for (int j = 1,k=len; j <= len; j++,k--)
{
y[j] = t[k];
}
y.len = len;
while (y.len > 0)zhy(y, x);
if (F == -1)
{
cout << F<<'\n';
F = 0;
}
else
{
if (x[len])x.len = len;
else x.len = len - 1;
for (int i = x.len; i > 0; i--)cout << x[i];
cout << '\n';
}
}
}