56分求助
查看原帖
56分求助
236462
EasonKotori楼主2023/1/22 18:13

5和10-14都是WA

#include<bits/stdc++.h>
using namespace std;
int a[301][301];
int ans[301];
int cmp;
int main()
{
    int n;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        for(int j=i; j<=n; j++)
        {
            cin>>a[i][j];
        }
    }
    ans[1]=1;
    ans[2]=a[1][2]+1;
    if(a[1][2]==0)
    {
        cmp=-1;
    }
    else
    {
        cmp=1;
    }
    for(int i=3; i<=n; i++)
    {
        if(cmp==-1)
        {
            ans[i]=ans[i-1]+a[i-1][i];
            if(a[i-1][i]!=0)
            {
                cmp=i-1;
            }
            continue;
        }
        int flg=a[i-1][i]+a[cmp][i-1];
        if(ans[cmp]<ans[i-1])
        {
            if(flg==a[cmp][i])
            {
                ans[i]=ans[i-1]+a[i-1][i];
            }
            else
            {
                ans[i]=ans[i-1]-a[i-1][i];
            }
        }
        else
        {
            if(flg==a[cmp][i])
            {
                ans[i]=ans[i-1]-a[i-1][i];
            }
            else
            {
                ans[i]=ans[i-1]+a[i-1][i];
            }
        }
        if(ans[i-1]!=ans[cmp])
        {
            cmp=i-1;
        }
    }
    for(int i=1; i<=n; i++)
    {
        cout<<ans[i]<<" ";
    }
}

2023/1/22 18:13
加载中...