为什么测试用例都能过,但是评测全过不了,求调!
  • 板块P10253 说唱
  • 楼主EumenidesHe
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/18 16:05
  • 上次更新2024/3/18 19:46:32
查看原帖
为什么测试用例都能过,但是评测全过不了,求调!
1268242
EumenidesHe楼主2024/3/18 16:05

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';
		}
	}
}
2024/3/18 16:05
加载中...