如果广告<适用规则bc a / b<光盘

时间:2015-09-08 16:56:17

标签: c++

我正在做一个小程序,有2个数组,它们的大小是相同的,让我们说5,

cin >> W;

for (int Q = 0; Q < W; Q++) 

        cin >> PR[Q] >> CA[Q]; 

所以,我的阵列现在已经填满了,

数字只是例子,无论我的意思是他们的尺寸

1000 300

750 200

950 852

450 250

471 207

现在,为了更好地理解它,让我们说在右侧,这意味着在CA阵列中有一些数字,这意味着分钟,字面意思,在PR数组中这些数字是价格,现在我需要找到这对它在一分钟内得到了最小的价格,但是我想分开它,但它很慢,所以我找到了规则 如果ad < bc,则a/b < c/d 但我无法在循环中使用它所有其他的东西都是我的意思定义等,我只是不能做这个“核心”它会是什么样子?

我还创建了2个循环,但无法正确实现

for (int H = 0; H < W; H++) {
        for (int B = 0; B < W; B++) {

}
}

1 个答案:

答案 0 :(得分:2)

您不需要两个循环来使用简单的线性搜索:

int best = 0;
for (int i = 1 ; i != W ; i++) {
    if (pr[i]*ca[best] < pr[best]*ca[i]) {
        best = i;
    }
}

请注意,循环从索引1开始,而不是0,因为我们不需要将pr[0], ca[0]对与自身进行比较。