B.Train Seats Reservation 暴力枚举
题目:
https://nanti.jisuanke.com/t/17309总是忘了s起点有可能>t终点
先创建一个数组a[i] 表示的是在第i个车站 车上的人有多少个
for(int j=1;j<=n;j++){
scanf("%d %d %d",&l,&r,&k);
if(l>r) swap(l, r);
for(LL i=l;i<r;i++)
{
a[i]+=k;
if(ans<a[i]) ans=a[i];
}
不知道为啥错了
#include <iostream>
#include <cstring>
#include <algorithm>
#define Max(a,b,c) max(max(a,b),c);
using namespace std;
class node{
public:
int s,t,k;
bool operator<(const node& aa)const
{
return s<aa.s;
}
}a[1005];
int main()
{
int num;
while(cin>>num)
{
if(num==0)
{
cout<<"*"<<endl;
break;
}
for(int i=0;i<num;i++)
{
cin>>a[i].s>>a[i].t>>a[i].k;
if(a[i].t<a[i].s) swap(a[i].t,a[i].s);
}
sort(a,a+num);
int maxx=a[0].k,seat=a[0].k;
for(int i=0;i<num;i++)
{
seat=a[i].k;
for(int k=i+1;k<num;k++)
{
if(a[k].s<a[i].t)
{
seat+=a[k].k;
//cout<<seat<<endl;
}
else
{
break;
}
}
maxx=max(seat,maxx);
}
cout<<maxx<<endl;
}
return 0;
}