求助!5wa
查看原帖
求助!5wa
596784
Northmi楼主2023/9/24 00:49

代码如下:

#include <bits/stdc++.h>

using namespace std;

int main ()
{
    int day;
    int flg_to_money = 0;    // 找到最小值 
    int flg_to_future = 0;  // 找到最大值 
    int min_targ_day = 0;
    int max_targ_day = 0;
    int flg_start = 0;
    int a[100];
    float money = 100.0;
    cin >> day;
    for (int i = 0; i < day; i++)
    {
        cin >> a[i];
    }
    for (int i = 1; i < day; i++)
    {
    	/*  找出最高点								大于最大值  */
        if (a[i] > a[i - 1] && a[i + 1] < a[i] )
        {
            max_targ_day = i;
            flg_to_future = 1;
            flg_start = 1;
        }
//        初始为下降 
        if (a[i] < a[i - 1] && flg_start == 0)
        {
            flg_start = 1;
            max_targ_day = 0;
            flg_to_future = 1;
        }
        
//        找最小点 														
        if ((a[i] < a[i - 1] && a[i] < a[i + 1] && flg_to_future == 1)) 
        {
            min_targ_day = i;
            flg_to_money = 1;
        }
//        最后一点的特殊处理 
        if ((i == day - 1) && (a[i] < a[i - 1]))
		{
			min_targ_day = i;
            flg_to_money = 1;
		}  
//        最大值最小值均找到,且到了下一个下降点 
        if (a[i] < a[i - 1] && flg_to_future == 1 && flg_to_money == 1)
        {
            money = money * a[max_targ_day] / 100;
            money = money / a[min_targ_day] * 100;
            flg_to_future = 0;
            flg_to_money = 0;
            max_targ_day = i - 1;
            min_targ_day = i;
        }
    }
    cout << money << endl;
    
    return 0;
}

思路为寻找汇率的拐点,进行成对的交易,其中分别对起始和结尾做了特殊处理,但是测试用例的第四个和后面四个错了,求大佬帮助

2023/9/24 00:49
加载中...