一道结构体排序,是否我的思路有误?

题面:

img

下面是我的代码,注释中有思路

#include <iostream>
#include <string>
using namespace std;
struct team
{
    int time = 0;//总罚时
    int sum = 0;//解决的题目数
    int question[10] = { 0 };//记录第n-1题是否已ac
};
int main()
{
    int n, m, i, j, k;
    cin >> n >> m;
    team t[1000];
    int a, b, c;
    string s;
    //录入
    for (i = 0; i < m; i++)
    {
        cin >> a >> b >> c >> s;
        
        if(s=="ac"&&t[a - 1].question[c - 1] == 0)
        {
            t[a - 1].time += b;
            t[a - 1].question[c - 1] = 1;
            t[a - 1].sum++;
        }
        if (t[a - 1].question[c - 1] == 0 && s == "wa")
            t[a - 1].time += 20;

    }
    int r[1000] = { 0 };
    for (i = 0; i < n; i++)
        r[i] = i;
    int temp;

    //先从sum排
    for(i=0;i<n;i++)
        for (j = i + 1; j < n; j++)
        {
            if (t[r[i]].sum < t[r[j]].sum)
            {
                temp = r[i];
                r[i] = r[j];
                r[j] = temp;
            }
        }
    //再从time排
    for (i = 0; i < n; i++)
        for (j = i + 1; j < n; j++)
        {
            if (t[r[i]].sum == t[r[j]].sum&&t[r[i]].time > t[r[j]].time)
            {
                temp = r[i];
                r[i] = r[j];
                r[j] = temp;
            }
            //sum和time都一样编号小的先排
            if (t[r[i]].sum == t[r[j]].sum&&t[r[i]].time == t[r[j]].time)
                if (r[i] > r[j])
                {
                    temp = r[i];
                    r[i] = r[j];
                    r[j] = temp;
                }
        }
    //输出
    for (i = 0; i < n; i++)
    {
        cout << (r[i] + 1) << " " << t[r[i]].sum << " " << t[r[i]].time << endl;
    }
}

题目的样例用我的代码输入后,输出的结果是一样的,但是搁oj上就wa了

可能你用的编译器和OJ上不太一样,比如结构中int question[10] = { 0 };这么写,有些编译器是不允许的,会报错。