#pragma once
#include<iostream>
#include<string>template<typenameContainer>classPolynomialViewer{Containerdata;public:PolynomialViewer(Containerdata):data(data){}voidshow_x(std::ostream&s,intk)const{if(k==0)return;elseif(k==1)s<<"x";else{s<<"x";constexprstaticautop="⁰¹²³⁴⁵⁶⁷⁸⁹";for(charc:std::to_string(k)){inti=c-'0';if(i==0)s<<p[i]<<p[i+1]<<p[i+2];elseif(1<=iandi<=3)s<<p[1+i*2]<<p[2+i*2];elses<<p[i*3-3]<<p[i*3-2]<<p[i*3-1];}}}auto&run(std::ostream&s)const{constintn=data.size();for(inti=0;i<n;++i){s<<data[i];show_x(s,i);s<<" ";}returns;}friendstd::ostream&operator<<(std::ostream&s,constPolynomialViewer&a){returna.run(s);}};