2 条题解

  • 0
    @ 2025-10-18 14:48:51
    #include<bits/stdc++.h>
    using namespace std;
    long long n,jt,pricei,ti,zq,a[100100],b[100100],c[100100],t,nn;//nn是能用 
    bool p;
    int main()
    {
    	cin>>n;
    	nn=1;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>jt>>pricei>>ti;
    		if(jt==0)
    		{
    			zq+=pricei;
    			a[++t]=ti+45;
    			b[t]=pricei;
    		}
    		else
    		{
    			p=false;
    			for(int j=nn;j<=t;j++)
    			{
    				if(a[j]<ti)
    				{
    					nn++;
    					continue;
    				}
    				else
    				{
    					if(b[j]>=pricei)
    					{
    						b[j]=0;
    						p=true;
    						break;
    					}
    				}
    			}
    			if(p==false) zq+=pricei;
    		}
    //		cout<<zq<<'\n';
    //		printf("nn = %lld,t = %lld\n", nn, t);
    	}
    	cout<<zq;
    }
    
    • 0
      @ 2024-3-9 19:35:36
      #include <bits/stdc++.h>
      //#define int long long
      using namespace std;
      int n,k,ans;
      struct metro {
      	int price;
      	long long time;
      } a[100001];
      int main() {
      	int choose=1;
      	bool p=false;
      	cin>>n;
      	for (int i=1;i<=n;i++) {
      		int su,pr,ti;
      		cin>>su>>pr>>ti;
      		if (su==0) {//乘坐地铁的时候 
      			ans=ans+pr;
      			a[++k].price=pr;
      			a[k].time=ti;
      		}
      		else {//乘坐公交车的时候 
      			p=false;
      			for (int j=choose;j<=k;j++) {//选择票 
      				if (ti-a[j].time>45) {
      					choose=j+1;
      					continue;
      				}
      				if (a[j].price>=pr) {
      					p=true;
      					a[j].price=0;
      					break;
      				}
      			}	
      			if (!p) ans=ans+pr;
      		}
      	}
      	cout<<ans;
          return 0;
      }
      
      • 1

      信息

      ID
      477
      时间
      1000ms
      内存
      256MiB
      难度
      2
      标签
      (无)
      递交数
      31
      已通过
      22
      上传者