某次列車途經c個城市,城市編號依次為1到c,列車上共有s個座位,鐵路局規定售出的車票只能是坐票, 即車上所有的旅客都有座。售票系統是由計算機執行的,每乙個售票申請包含三個引數,分別用o、d、n表示,o為起始站,d為目的地站,n為車票張數。售票 系統對該售票申請作出受理或不受理的決定,只有在從o到d的區段內列車上都有n個或n個以上的空座位時該售票申請才被受理。請你寫乙個程式,實現這個自動 售票系統。
第一行包含三個用空格隔開的整數c、s和r,其中1≤c≤60000, l≤s≤60000,1≤r≤60000。c為城市個數,s為列車上的座位數,r為所有售票申請總數。接下來的r行每行為乙個售票申請,用三個由空格隔開的整數o,d和n表示,o為起始站,d 為目的地站,n為車票站數,其中1≤d≤c,1≤o≤c,所有的售票申請按申請的時間從早到晚給出。
輸出共有r行,每行輸出乙個「yes」或「no」,表示當前的售票申請被受理或不被受理。
輸入:
4 6 41 4 2
1 3 2
2 4 3
1 2 3
輸出:
yesyesno
no
題解:區間修改,區間查詢最大值。當座位數減最大值小於所要求的票數時輸出no。其他輸出yes.#include#includeusing namespace std;
int t[1000001],n,d,o,p[1000001],maxx,minn,s,r,c;
int read()
while(ch>='0'&&ch<='9')
return x*f;
}inline void paint(int k,int l,int r,int v)
inline void pushdown(int k,int l,int r)
inline void add(int k,int l,int r,int ll,int rr,int v)
mid=(l+r)/2;
if (ll<=mid) add(k*2,l,mid,ll,rr,v);
if (rr>mid) add(k*2+1,mid+1,r,ll,rr,v);
t[k]=max(t[k*2],t[k*2+1]);
}inline int qmax(int k,int l,int r,int ll,int rr)
int main()
{ freopen("railway.in","r",stdin);
freopen("railway.out","w",stdout);
c=read();s=read();r=read();
for (int i=1;i<=r;i++)
{o=read();d=read();n=read();
maxx=qmax(1,1,c-1,o,d-1);
if (s-maxx
cogs247 售票系統 線段樹
輸入檔案 railway.in 輸出檔案 railway.out 時間限制 1 s 記憶體限制 128 mb 問題描述 某次列車途經c個城市,城市編號依次為1到c,列車上共有s個座位,鐵路局規定售出的車票只能是坐票,即車上所有的旅客都有座。售票系統是由計算機執行的,每乙個售票申請包含三個引數,分別用...
cogs247 售票系統 線段樹
輸入檔案 railway.in 輸出檔案 railway.out 時間限制 1 s 記憶體限制 128 mb 問題描述 某次列車途經c個城市,城市編號依次為1到c,列車上共有s個座位,鐵路局規定售出的車票只能是坐票,即車上所有的旅客都有座。售票系統是由計算機執行的,每乙個售票申請包含三個引數,分別用...
cogs 247 售票系統 線段樹
輸入檔案 railway.in輸出檔案 railway.out簡單對比 時間限制 1 s 記憶體限制 128 mb 某次列車途經c個城市,城市編號依次為1到c,列車上共有s個座位,鐵路局規定售出的車票只能是坐票,即車上所有的旅客都有座。售票系統是由計算機執行的,每乙個售票申請包含三個引數,分別用o ...