为啥洛谷编译不通过 明明我Devc++ 和visual studio 都通过了

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

#include
using namespace std;
#include<math.h>
typedef long long int llt;
llt arr[63000];
llt index = 0;//索引数组的下标
int num1 = 0, num2 = 0;
int f = 0;
llt sum = 0;
//sum用来记录输入了多少个有效字母 ,f来判断是否发生特殊情况
void cal(int number)
{
num1 = 0; num2 = 0;
while (num1 < number && num2 < number)
{

    if (index == sum)
        break;
    if (arr[index] == 'W')
    {
        num1++; index++;
    }
    else if (arr[index] == 'L')
    {
        num2++; index++;
    }
}



if (abs(num1 - num2) >= 2)
    cout << num1 << ":" << num2 << endl;
else
{
    f = 1;

    while (!(abs(num1 - num2) >= 2))
    {
        if (index == sum)
            break;
        if (arr[index] == 'W')
        {
            num1++; index++;
        }
        else if (arr[index] == 'L')
        {
            num2++; index++;
        }
    }
}

if (f)
    cout << num1 << ":" << num2 << endl;
if (index != sum)cal(number);

}

int main()
{

char a;
for (llt i = 0; cin >> a && a != 'E'; i++)
{
    arr[i] = a; sum++;
}
cal(11);
cout << endl;
index = 0, f = 0;
cal(21);
return 0;

}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

变量 f 的值在cal函数开始的时候需要重置为0吧,否则上一次cal运行的时候,如果 f 的值是1,会影响下一次cal函数的执行。
修改如下:

void cal(int number)
{
    f = 0; //修改  在这里把f重置为0
    //其它代码。。。
    num1 = 0; num2 = 0;
    //...
}

还有就是,你的arr数组中,存储的元素的实际大小是-128到127(char的数据范围),没必要用long long 类型,白白的浪费内存空间。

你题目是什么?
全局变量名别用index,改成别的变量名试试

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632