文章标题

来源:互联网 发布:网络主播名字大全女 编辑:程序博客网 时间:2024/06/06 00:11

WA

#pragma warning(disable:4996)#include <iostream>#include <cstring>#include<string>#include <cstdio>#include <cmath>#include<algorithm>using namespace std;const int INF = 0x3f3f3f3f;struct{    int cost;    string str;}S[100005];int dp[100005];int main(){    int n;    loop:while (~scanf("%d", &n))    {        int i, j, k;        for (i = 1; i <= n; i++)        {            cin >> S[i].cost;        }        for (i = 1; i <= n; i++)        {            cin >> S[i].str;        }        dp[1] = 0;        for (i = 2; i <= n; i++)        {            string temp, temp1,temp2;            temp1 = S[i].str;            temp2 = S[i - 1].str;            reverse(temp1.begin(), temp1.end());            reverse(temp2.begin(), temp2.end());            temp=S[i - 1].str;            if (S[i].str>=S[i - 1].str)            {                dp[i] = dp[i - 1];            }            else if (temp1>= S[i - 1].str || temp2 <= S[i].str)            {                int s1, s2;                s1 = s2 = INF;                if (temp1 >= S[i - 1].str)                {                    s1 = S[i].cost;                }                if (temp2 <= S[i].str)                {                    s2 = S[i - 1].cost;                }                dp[i] = min(s1, s2);                if (dp[i] == s1)                {                    dp[i - 1] = s2;                }            }            else            {                printf("-1\n");                goto loop;            }        }        cout << dp[n] << endl;    }}
0 0
原创粉丝点击