ECNU機試之判斷“東西越貴越好”的命題

由于題目比較長,并且時間已久,我只記得題目大概的意思:給出N個商品的價格和質量,判斷“東西越貴越好”這個命題是否正確。

Input

第1行,一個數N,N為商品的數量。(2 <= N <=100)

第2 - N + 1行:具體N個商品的價格和質量。

Output

判斷是否符合“東西越貴越好”這個命題,輸出yes/no。

Input示例

6
1 2
3 5
4 8
6 9
10 13
15 18

5
1 3
3 6
5 8
6 7
7 10

Output示例

yes

no

解題思想:與求最大斜率那題類似,將商品按價格排序,對比相鄰兩個商品的質量,判斷是否存在“價格變高,質量卻降低”的情況。

參考代碼(沒有用STL):

#include <iostream>

using std::cin;
using std::cout;
using std::endl;

struct node //存儲商品的信息
{
    float x,y;
};

int main()
{
    bool flag=true;
    int n=0;
    while(cin>>n)
    {
        node nodes[50];

        for(int i=0; i<n; i++)
        {
            cin>>nodes[i].x>>nodes[i].y;
        }

        for(int i=n; i>0; i--)//商品按價格排序
        {
            for(int i=0; i+1<n; i++)
            {
                if(nodes[i].x>nodes[i+1].x)
                {
                    node temp;
                    temp=nodes[i];
                    nodes[i]=nodes[i+1];
                    nodes[i+1]=temp;
                }
            }
        }

        for(int i=1; i<n; i++)//遍歷價格相近商品的質量
        {
            if(nodes[i].y-nodes[i-1].y<=0)//尋找是否存在價格高的商品質量卻比價格低的差
            {
                flag=false;
                break;
            }
        }

        if(flag==true)//輸出結果
        {
            cout<<"yes"<<endl;
        }
        else cout<<"no"<<endl;

    }
    return 0;
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,776評論 0 33
  • 感覺自己寫的字好幼稚,買了本字帖臨摹,只要想改變,什么時候都不算晚,堅持吧!
    簾外雨聲123閱讀 293評論 0 1
  • 窗外 一彎月亮 照著這里 照著家鄉 只是 母親在夢中 我在這思量 …… 窗外 這彎月亮 兒時在池塘 如今在他鄉 只...
    金剛葫蘆GF閱讀 221評論 0 7
  • 我看到了自己的焦慮,我在一直在思考自己同別人的差距,給自己定個目標,爭取用三個月時間邀請開店人數達到50人,一個月...
    王翠英閱讀 97評論 0 0