#include <iostream>
#include <vector>
using namespace std;
// Funkcja wczytująca stopień i współczynniki wielomianu
void wczytajWielomian(vector<int>& a, int& stopien) {
stopien = 3; // stopień wielomianu
a.resize(stopien + 1);
// współczynniki: a3=1, a2=2, a1=3, a0=4
a[0] = 1; // a3
a[1] = 2; // a2
a[2] = 3; // a1
a[3] = 4; // a0
}
// Funkcja obliczająca wartość wielomianu (schemat Hornera)
int obliczWartosc(const vector<int>& a, int stopien, int x) {
int wynik = a[0];
for (int i = 1; i <= stopien; i++) {
wynik = wynik * x + a[i];
}
return wynik;
}
int main() {
vector<int> a;
int stopien;
int x = 2;
wczytajWielomian(a, stopien);
int W = obliczWartosc(a, stopien, x);
cout << "Stopien wielomianu: " << stopien << endl;
cout << "a3 = " << a[0] << endl;
cout << "a0 = " << a[3] << endl;
cout << "x = " << x << endl;
cout << "W(2) = " << W << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRnVua2NqYSB3Y3p5dHVqxIVjYSBzdG9waWXFhCBpIHdzcMOzxYJjenlubmlraSB3aWVsb21pYW51CnZvaWQgd2N6eXRhaldpZWxvbWlhbih2ZWN0b3I8aW50PiYgYSwgaW50JiBzdG9waWVuKSB7CiAgICBzdG9waWVuID0gMzsgICAgICAgICAgICAgIC8vIHN0b3BpZcWEIHdpZWxvbWlhbnUKICAgIGEucmVzaXplKHN0b3BpZW4gKyAxKTsKCiAgICAvLyB3c3DDs8WCY3p5bm5pa2k6IGEzPTEsIGEyPTIsIGExPTMsIGEwPTQKICAgIGFbMF0gPSAxOyAgIC8vIGEzCiAgICBhWzFdID0gMjsgICAvLyBhMgogICAgYVsyXSA9IDM7ICAgLy8gYTEKICAgIGFbM10gPSA0OyAgIC8vIGEwCn0KCi8vIEZ1bmtjamEgb2JsaWN6YWrEhWNhIHdhcnRvxZvEhyB3aWVsb21pYW51IChzY2hlbWF0IEhvcm5lcmEpCmludCBvYmxpY3pXYXJ0b3NjKGNvbnN0IHZlY3RvcjxpbnQ+JiBhLCBpbnQgc3RvcGllbiwgaW50IHgpIHsKICAgIGludCB3eW5payA9IGFbMF07CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gc3RvcGllbjsgaSsrKSB7CiAgICAgICAgd3luaWsgPSB3eW5payAqIHggKyBhW2ldOwogICAgfQoKICAgIHJldHVybiB3eW5pazsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8aW50PiBhOwogICAgaW50IHN0b3BpZW47CiAgICBpbnQgeCA9IDI7CgogICAgd2N6eXRhaldpZWxvbWlhbihhLCBzdG9waWVuKTsKICAgIGludCBXID0gb2JsaWN6V2FydG9zYyhhLCBzdG9waWVuLCB4KTsKCiAgICBjb3V0IDw8ICJTdG9waWVuIHdpZWxvbWlhbnU6ICIgPDwgc3RvcGllbiA8PCBlbmRsOwogICAgY291dCA8PCAiYTMgPSAiIDw8IGFbMF0gPDwgZW5kbDsKICAgIGNvdXQgPDwgImEwID0gIiA8PCBhWzNdIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJ4ID0gIiA8PCB4IDw8IGVuZGw7CiAgICBjb3V0IDw8ICJXKDIpID0gIiA8PCBXIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K