#include <iostream>
#include <vector>
using namespace std;
// funkcja zwracajaca wartosc wielomianu (algorytm naiwny)
int obliczWartosc(const vector<int> &a, int stopien, int x) {
int wynik = 0;
for (int i = 0; i <= stopien; i++) {
int potega = 1;
for (int j = 0; j < i; j++) {
potega *= x;
}
wynik += a[i] * potega;
}
return wynik;
}
int main() {
int stopien = 3;
vector<int> a;
// wspolczynniki: a0, a1, a2, a3
a.push_back(4); // a0
a.push_back(3); // a1
a.push_back(2); // a2
a.push_back(1); // a3
int x = 2;
int W = obliczWartosc(a, stopien, x);
cout << "Stopien wielomianu: " << stopien << endl;
cout << "a3 = " << a[3] << endl;
cout << "a2 = " << a[2] << endl;
cout << "a1 = " << a[1] << endl;
cout << "a0 = " << a[0] << endl;
cout << "x = " << x << endl;
cout << "W(" << x << ") = " << W << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIGZ1bmtjamEgendyYWNhamFjYSB3YXJ0b3NjIHdpZWxvbWlhbnUgKGFsZ29yeXRtIG5haXdueSkKaW50IG9ibGljeldhcnRvc2MoY29uc3QgdmVjdG9yPGludD4gJmEsIGludCBzdG9waWVuLCBpbnQgeCkgewogICAgaW50IHd5bmlrID0gMDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzdG9waWVuOyBpKyspIHsKICAgICAgICBpbnQgcG90ZWdhID0gMTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGk7IGorKykgewogICAgICAgICAgICBwb3RlZ2EgKj0geDsKICAgICAgICB9CiAgICAgICAgd3luaWsgKz0gYVtpXSAqIHBvdGVnYTsKICAgIH0KCiAgICByZXR1cm4gd3luaWs7Cn0KCmludCBtYWluKCkgewogICAgaW50IHN0b3BpZW4gPSAzOwogICAgdmVjdG9yPGludD4gYTsKCiAgICAvLyB3c3BvbGN6eW5uaWtpOiBhMCwgYTEsIGEyLCBhMwogICAgYS5wdXNoX2JhY2soNCk7IC8vIGEwCiAgICBhLnB1c2hfYmFjaygzKTsgLy8gYTEKICAgIGEucHVzaF9iYWNrKDIpOyAvLyBhMgogICAgYS5wdXNoX2JhY2soMSk7IC8vIGEzCgogICAgaW50IHggPSAyOwoKICAgIGludCBXID0gb2JsaWN6V2FydG9zYyhhLCBzdG9waWVuLCB4KTsKCiAgICBjb3V0IDw8ICJTdG9waWVuIHdpZWxvbWlhbnU6ICIgPDwgc3RvcGllbiA8PCBlbmRsOwogICAgY291dCA8PCAiYTMgPSAiIDw8IGFbM10gPDwgZW5kbDsKICAgIGNvdXQgPDwgImEyID0gIiA8PCBhWzJdIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJhMSA9ICIgPDwgYVsxXSA8PCBlbmRsOwogICAgY291dCA8PCAiYTAgPSAiIDw8IGFbMF0gPDwgZW5kbDsKICAgIGNvdXQgPDwgInggPSAiIDw8IHggPDwgZW5kbDsKICAgIGNvdXQgPDwgIlcoIiA8PCB4IDw8ICIpID0gIiA8PCBXIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K