杭电OJ 1087 所有的测试都过了包括自己写的一些测试也过了,为什么不能AC?

图片说明图片说明

#include "stdio.h"
#include <iostream>
#include <vector>
using namespace std;
struct dp {
    int max;
    int s;
};
typedef vector<vector<dp> > vvd;
void get(vvd& vd, vector<int> a)
{
    vd[0][0].s = a[0];
    vd[0][0].max = 0;
    for (int i = 1; i < a.size(); i++)
    {
        if (a[i] > a[vd[0][i - 1].max])
        {
            vd[0][i].s = vd[0][i - 1].s + a[i];
            vd[0][i].max = i;
        }
        else
        {
            int m = vd[0][i - 1].max + 1;
            if (i != m)
            {
                if (a[i] > a[vd[m][i - 1].max])
                {
                    vd[m][i].s = vd[m][i - 1].s + a[i];
                    vd[m][i].max = i;
                    if (vd[m][i].s > a[vd[0][i - 1].max])
                    {
                        vd[0][i].s = vd[0][i - 1].s - a[vd[0][i - 1].max] + vd[m][i].s;
                        vd[0][i].max = i;
                    }
                    else
                    {
                        vd[0][i] = vd[0][i - 1];
                    }
                }
                else
                {
                    vd[0][i] = vd[0][i - 1];
                    vd[m][i] = vd[m][i - 1];
                }
            }
            else
            {
                vd[0][i] = vd[0][i - 1];
                vd[i][i].s = a[i];
                vd[i][i].max = i;
            }
        }
    }
}
int main()
{
    int n;
    cin >> n;
    while (n != 0)
    {
        vector<int> a;
        a.resize(n);
        vvd vd;
        vd.resize(n);
        for (int i = 0; i < n; i++)
        {
            vd[i].resize(n);
            cin >> a[i];
        }
        get(vd,a);
        cout <<vd[0][n - 1].s << endl;
        cin >> n;
    }
}

杭电oj平台输入格式 输出格式 都比较的死 差一个空格和回车都不行 输入输出格式都得一样

给你提供一个错误样例吧
5 1 2 1 2 3