Untitled

 avatar
unknown
c_cpp
4 years ago
1.7 kB
2
Indexable
#include <iostream>

using namespace std;

int main()
{
    int vesna, kire, desno, levo, n;
    cin >> vesna >> kire;
    cin >> desno >> levo;
    cin >> n;
    int niza[n];
    for(int i = 0; i < n; i++) {
        cin >> niza[i];
    }
    int najbliska_postojka_do_vesna = 20000000;
    int najbliska_postojka_do_kire = 20000000;
     // najbliskata postojka do vesna
    for(int i = 0; i < n; i++) {
        if(vesna <= niza[i]) {
            int energija = (niza[i] - vesna) * desno;
            if(najbliska_postojka_do_vesna > energija) {
                najbliska_postojka_do_vesna = energija;
            }
        }
        if(vesna >= niza[i]) {
            int energija = (vesna - niza[i]) * levo;
            if(najbliska_postojka_do_vesna > energija) {
                najbliska_postojka_do_vesna = energija;
            }
        }
    }
    
    for(int i = 0; i < n; i++) {
        if(kire <= niza[i]) {
            int energija = (niza[i] - kire) * levo;
            if(najbliska_postojka_do_kire > energija) {
                najbliska_postojka_do_kire = energija;
            }
        }
        if(kire >= niza[i]) {
            int energija = (kire - niza[i]) * desno;
            if(najbliska_postojka_do_kire > energija) {
                najbliska_postojka_do_kire = energija;
            }
        }
    }
    int r = najbliska_postojka_do_kire + najbliska_postojka_do_vesna;
    if(vesna < kire) {
        if((kire - vesna) * desno < r) {
            r = (kire - vesna) * desno;
        }
    }
    else {
        if((vesna - kire) * levo < r) {
            r = (vesna - kire) *  levo;
        }
    }
    cout << r << endl;
    return 0;
}
Editor is loading...