CCCPaste

Untitled

#include 
#include
using namespace std;

int main()
{
    int vesna, kire, desno, levo, n;
    cin >> vesna >> kire >> desno >> levo >> n;
    int a[n];
    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }
    int min = 2000000000;
    if(vesna < kire) {
        if((kire - vesna) * desno < min) {
            min = (kire - vesna) * desno;
        }
    }
    else {
        if((vesna - kire) * levo < min) {
            min = (vesna - kire) * levo;
        }
    }
    if(n == 0) {
        cout << min << endl;
        return 0;
    }
    int najbliska_postojka_do_vesna = 2000000000;
    int najbliska_postojka_do_kire = 2000000000;
    for(int i = 0; i < n; i++) {
        if(vesna <= a[i]) {
            if((a[i] - vesna) * desno < najbliska_postojka_do_vesna) {
                najbliska_postojka_do_vesna = (a[i] - vesna) * desno;
            }
        }
        if(vesna >= a[i]) {
            if((vesna - a[i]) * levo < najbliska_postojka_do_vesna) {
                najbliska_postojka_do_vesna = (vesna - a[i]) * levo;
            }
        }
        
        if(kire >= a[i]) {
            if((kire - a[i]) * desno < najbliska_postojka_do_kire) {
                najbliska_postojka_do_kire = (kire - a[i]) * desno;
            }
        }
        if(kire <= a[i]) {
            if((a[i] - kire) * levo < najbliska_postojka_do_kire) {
                najbliska_postojka_do_kire = (a[i] - kire) * levo;
            }
        }
    }
    if(min > najbliska_postojka_do_kire + najbliska_postojka_do_vesna) {
        min = najbliska_postojka_do_kire + najbliska_postojka_do_vesna;
    }
    cout << min << endl;
    return 0;
}