#include <iostream>
#include <vector>
using namespace std;
// Funkcja wczytuje stopień wielomianu i współczynniki
vector<int> wczytajWielomian(int &stopien) {
cin >> stopien;
vector<int> wspolczynniki(stopien + 1); // od a0 do aN
for (int i = stopien; i >= 0; i--) {
cin >> wspolczynniki[i];
}
return wspolczynniki;
}
// Funkcja oblicza wartość wielomianu metodą Hornera
int obliczWartoscHornera(const vector<int> &wspolczynniki, int stopien, int x) {
int wynik = wspolczynniki[stopien]; // zaczynamy od najwyższego współczynnika
for (int i = stopien - 1; i >= 0; i--) {
wynik = wynik * x + wspolczynniki[i];
}
return wynik;
}
int main() {
int stopien;
vector<int> wspolczynniki = wczytajWielomian(stopien);
int x;
cin >> x;
int wartosc = obliczWartoscHornera(wspolczynniki, stopien, x);
// Wyświetlenie wyniku w podanym formacie
cout << "stopien wielomianu : " << stopien << " | ";
for (int i = stopien; i >= 0; i--) {
cout << "a" << i << "=" << wspolczynniki[i] << " | ";
}
cout << "x=" << x << " | W(" << x << ")=" << wartosc << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmtjamEgd2N6eXR1amUgc3RvcGllxYQgd2llbG9taWFudSBpIHdzcMOzxYJjenlubmlraQp2ZWN0b3I8aW50PiB3Y3p5dGFqV2llbG9taWFuKGludCAmc3RvcGllbikgewogICAgY2luID4+IHN0b3BpZW47CgogICAgdmVjdG9yPGludD4gd3Nwb2xjenlubmlraShzdG9waWVuICsgMSk7IC8vIG9kIGEwIGRvIGFOCgogICAgZm9yIChpbnQgaSA9IHN0b3BpZW47IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgY2luID4+IHdzcG9sY3p5bm5pa2lbaV07CiAgICB9CgogICAgcmV0dXJuIHdzcG9sY3p5bm5pa2k7Cn0KCi8vIEZ1bmtjamEgb2JsaWN6YSB3YXJ0b8WbxIcgd2llbG9taWFudSBtZXRvZMSFIEhvcm5lcmEKaW50IG9ibGljeldhcnRvc2NIb3JuZXJhKGNvbnN0IHZlY3RvcjxpbnQ+ICZ3c3BvbGN6eW5uaWtpLCBpbnQgc3RvcGllbiwgaW50IHgpIHsKICAgIGludCB3eW5payA9IHdzcG9sY3p5bm5pa2lbc3RvcGllbl07IC8vIHphY3p5bmFteSBvZCBuYWp3ecW8c3plZ28gd3Nww7PFgmN6eW5uaWthCgogICAgZm9yIChpbnQgaSA9IHN0b3BpZW4gLSAxOyBpID49IDA7IGktLSkgewogICAgICAgIHd5bmlrID0gd3luaWsgKiB4ICsgd3Nwb2xjenlubmlraVtpXTsKICAgIH0KCiAgICByZXR1cm4gd3luaWs7Cn0KCmludCBtYWluKCkgewogICAgaW50IHN0b3BpZW47CiAgICB2ZWN0b3I8aW50PiB3c3BvbGN6eW5uaWtpID0gd2N6eXRhaldpZWxvbWlhbihzdG9waWVuKTsKCiAgICBpbnQgeDsKICAgIGNpbiA+PiB4OwoKICAgIGludCB3YXJ0b3NjID0gb2JsaWN6V2FydG9zY0hvcm5lcmEod3Nwb2xjenlubmlraSwgc3RvcGllbiwgeCk7CgogICAgLy8gV3nFm3dpZXRsZW5pZSB3eW5pa3UgdyBwb2RhbnltIGZvcm1hY2llCiAgICBjb3V0IDw8ICJzdG9waWVuIHdpZWxvbWlhbnUgOiAiIDw8IHN0b3BpZW4gPDwgIiB8ICI7CiAgICBmb3IgKGludCBpID0gc3RvcGllbjsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBjb3V0IDw8ICJhIiA8PCBpIDw8ICI9IiA8PCB3c3BvbGN6eW5uaWtpW2ldIDw8ICIgfCAiOwogICAgfQogICAgY291dCA8PCAieD0iIDw8IHggPDwgIiB8IFcoIiA8PCB4IDw8ICIpPSIgPDwgd2FydG9zYyA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==