P5661 0pts 求调
  • 板块题目总版
  • 楼主upding
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/21 22:20
  • 上次更新2024/7/22 08:39:49
查看原帖
P5661 0pts 求调
1061839
upding楼主2024/7/21 22:20
// P5661 [CSP-J2019] 公交换乘
// code by:cq_irritater
// time:2023/07/17
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 1e7 + 10;

struct tickets
{
    int transport, price, time;
    bool use; // use 表示 ticket 能否被使用
} ticket[MAXN];

int n;
int all;

int main()
{
    // freopen("code.in", "r", stdin);
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        scanf("%d %d %d", &ticket[i].transport, &ticket[i].price, &ticket[i].time);
    }
    for (int i = 1; i <= n; i++)
    {
        if (ticket[i].transport == 0) // 如果是地铁
        {
            ticket[i].use = true;
            all += ticket[i].price;
        }
        if (ticket[i].transport == 1) // 如果是公交车
        {
            for (int j = 1; j <= i - 1; j++)
            {
                if (ticket[j].use == false) // 如果已经废弃了,就直接跳过
                {
                    continue;
                }
                else if (ticket[i].time - ticket[j].time > 45) // 判断时间是否符合条件
                {
                    ticket[j].use = false;
                    continue;
                }
                else if (ticket[i].price > ticket[j].price) // 判断价格是否符合条件
                {
                    continue;
                }
                ticket[j].use = true;
            }
            for (int j = 1; j <= i; j++)
            {
                if (ticket[j].use == true)
                {
                    break;
                }
                if (j == i)
                {
                    all += ticket[i].price;
                }
            }
        }
    }
    printf("%d", all);
    return 0;
}

回复时麻烦 @ 一下 \bx

2024/7/21 22:20
加载中...