Jeśli stopień wielomianu wejściowego oznaczymy jako n, to na wejściu otrzymasz jeden wiersz tekstu zawierający rozdzielone spacjami n+2 liczby rzeczywiste; n+1 pierwszych liczba to współczynniki dzielnej, ostatnia to wyraz wolny dzielnika; 4 ≤ n ≤ 102
Wyjście to jeden wiersz, zawierający jedną liczbę rzeczywistą równą reszcie z dzielenia wielomianu przez dwumian
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main(){
string a,b,d;
getline(cin,a);
int c,e,z,f;
int y=1;
for(int i=0;i<a.size();i++){
if(a[i]==32)c=i;
}
c++;
d.insert(0,a,c,a.size()-1);
sscanf(d.c_str(),"%d",&e);
e=-e;
for(int i=0;i<c;i++){
if(a[i]!=32)b+=a[i];
else{
sscanf(b.c_str(),"%d",&f);
if(y==1)z=f;else
z=z*e+f;b="";y=0;
}
}
cout<<z;
}
Po usunięciu wszystkich tabulacji oraz enterów jego waga nadal przekracza 350B. Chciałbym go skrócić jeszcze bardziej, a mianowicie poniżej 300B.
Wydaje mi się że mógłbym to osiągnąć gdybym urzył rekuręcji ale niestety nigdy czegoś takiego nie robiłęm.
Mógłby mi ktoś zmodyfikować ten kod tak aby ważył poniżej 300B albo chociaż podpowiedział jak bym mógł taki efekt osiągnąć?