P5661 [CSP-J2019] 公交换乘

         公交换乘思路

1.结构体 存储优惠卷的过期时间+金额 
   2.输入n
    3.循环n次输入记录
        4.判断若是轻轨
         获得优惠卷1张记录 过期时间+金额
        花钱 
     5若是公交车
      flag记录是否有使用优惠卷
           6.在所有优惠卷里面找
                超时:扔掉
                 没超时:看金额是否满足  找到优惠卷停止
           7.没找到 花钱购买 
           8.移动找到的票的前面部分的票 往前移动 

代码实现

#include
using namespace std;
struct node{
	int money,time;
}a[100006];
int main(){
	int n,sum=0,st=1,en=0;//st是a的开始下标  en是结束下标 
	cin>>n;
	for(int i=1;i<=n;i++){
		int f,p,t;
		cin>>f>>p>>t; //车+价格+时间开始
		if(f==0){//地铁 
			sum+=p;
			++en;
			a[en].money=p;
			a[en].time=t+45;
		}else{//公交车   时间超 去掉   
			int ans=-1;//能否找到票
			for(int j=st;j<=en;j++){

你可能感兴趣的:(算法,数据结构)