內容 :
「低利航空公司」因與同業競爭,經常給予預購票大幅折扣。近年來因為油價高漲,經過細算,該公司所飛行的航班必須以票面價售出30%的機位才能打平所有的支出,因此該公司必須減少每張票的折扣數或者提高票面單價,來提昇公司獲利水準。
但是全面提高票價可能會造成客源的流失,因此企畫部門提出了以下的動態調整機位售價的模式:
給定某航段的票面價及機位數,前20%賣出的機位售價為票面價之70%,前21%~40%賣出的機位售價為票面價之80%,前41%~60%賣出的機位售價為票面價之 90%,最後售出的機位則全部為票面價。
請寫一個程式來幫助「低利航空公司」計算每天每班飛航班機的利潤或虧損。
計算過程皆四捨五入至整數。
但是全面提高票價可能會造成客源的流失,因此企畫部門提出了以下的動態調整機位售價的模式:
給定某航段的票面價及機位數,前20%賣出的機位售價為票面價之70%,前21%~40%賣出的機位售價為票面價之80%,前41%~60%賣出的機位售價為票面價之 90%,最後售出的機位則全部為票面價。
請寫一個程式來幫助「低利航空公司」計算每天每班飛航班機的利潤或虧損。
計算過程皆四捨五入至整數。
輸入說明 :
每個測試資料有一行數字,數字之間以空白隔開。第一個整數代表該航班的票面價s, s≦5,000,第二個整數代表機位數t, t ≦ 250,第三個整數n, 0≦ n ≦10 代表該航班共有n 個訂位記錄,後面則有n 個整數,分別代表每個訂位的機位數。當然,所訂的機位總數不會超過t。
輸出說明 :
請輸出飛航該班機的利潤或虧損金額。
範例輸入 :
2000 60 6 5 10 20 14 1 5
5000 240 5 3 14 14 14 10
範例輸出 :
59600
-164000
出處 :
/**********************************************************************************/
/* Problem: b119 "售票系統 (Sales)" from 95北市資訊學科能力競賽 */
/* Language: CPP */
/* Result: AC (26ms, 792KB) on ZeroJudge */
/* Author: diiuuli520 at 2008-07-21 22:30:22 */
/**********************************************************************************/
#include <iostream>
using namespace std;
int main()
{
int ans, s, t, n, ticket, tmp, i, p20, p40, p60;
while ( scanf("%d%d%d",&s,&t,&n) != EOF ) {
ticket = 0;
ans = -int(s*t*0.3+0.5);
while ( n-- ) {
scanf("%d",&tmp);
ticket += tmp;
}
p20 = int(t*0.2+0.5);
p40 = int(t*0.4+0.5);
p60 = int(t*0.6+0.5);
for( i = 1; i <= ticket; i++ ) {
if ( i <= p20 )
ans += int(s*0.7+0.5);
else if ( i <= p40 )
ans += int(s*0.8+0.5);
else if ( i <= p60 )
ans += int(s*0.9+0.5);
else
ans += s;
//printf("%.0lf\n",ans);
}
printf("%d\n",ans);
}
return 0;
}
沒有留言:
張貼留言