问题标题: 酷町堂:4422 公交换乘(transfer)TLE/RE 30分

0
0
已解决
乔俊驰
乔俊驰
资深守护
资深守护
#include <iostream>
#include <algorithm>
using namespace std;
int n,ans,vis[1000005];
struct by{
    bool x;
    int y,z;
}a[1000005];
int main() {
	cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].x>>a[i].y>>a[i].z;
    }
    for(int i=1;i<=n;i++){
        if(a[i].x==0){
            ans+=a[i].y;
        }
        else{
            bool flag=0;
            for(int j=1;j<i;j++){
                if(a[j].x==0&&a[i].z-a[j].z<=45&&a[i].y<=a[j].y&&!vis[j]){//1.是乘坐地铁,2.时间小于45分钟,3.公交票价不大于地铁票价,4.未使用过
                    flag=1;
                    vis[j]=1;
                    break;
                }
            }
            if(!flag)  ans+=a[i].y;
        }
    }
    cout<<ans;
	return 0;
}

 

乔俊驰在2021-07-04 14:53:44追加了内容

求解!!!


0
我要回答