怎么回事???
查看原帖
怎么回事???
745910
20111019Yu楼主2022/10/7 16:41
#include <bits/stdc++.h>
using namespace std;
int n, k, sum, x = 1, y = 0, v[2005];
int dfs(int x, int y)
{
	if(x == y || x + 1 == y && x == y) return 2;
	else if(v[x] > v[y]) return 0;
	else if(v[x] < v[y]) return 1;
	else dfs(x + 1, y - 1);
	
}

int main()
{
	cin >> n;
	for( int i = 1; i <= n; i++ )
	{
		cin >> v[i];
		y++;
	}
	for( int i = 1; i <= n; i++ )
	{
		if(dfs(x, y) == 2) 
		{
			sum += i * v[x];
			x++;
		}
		else if(dfs(x, y) == 0)
		{
			sum += v[y] * i;
			y--;	
		}
		else
		{
			sum += v[x] * i;
			x++;
		}
	}
	cout << sum;
	return 0;	
}

查了一个星期都没查出来,到底错在哪了???

求助大佬!!!

2022/10/7 16:41
加载中...