#include <iostream>
#include <cmath>
using namespace std;
void create(double *&x,int n){
x=new double[n]();
}
void enter(double *x,int n){
for(int i=0;i<n;++i){
cin>>x[i];
}
}
void print(double *x,int n){
for(int i=0;i<n;++i){
cout<<x[i]<<" ";
}
}
void add(double *x,double *y,double *z,int n){
for(int i=0;i<n;++i){
z[i]=x[i]+y[i];
}
}
void subtract(double *x,double *y,double *z,int n){
for(int i=0;i<n;++i){
z[i]=x[i]-y[i];
}
}
double length(double *x,int n){
double sum=0;
for(int i=0;i<n;++i){
sum+=x[i]*x[i];
}
return(sqrt(sum));
}
void normalize(double *x,double *z,int n){
double sum=0;
for(int i=0;i<n;++i){
sum+=x[i]*x[i];
}
double length=sqrt(sum);
if(length==0)return;
for(int i=0;i<n;++i){
z[i]=x[i]/length;
}
}
double dot(double *x,double *y,int n){
double sum=0;
for(int i=0;i<n;++i){
sum+=(x[i]*y[i]);
}
return(sum);
}
double mean(double *x,int n){
if(n==0)return 0;
double sum=0;
for(int i=0;i<n;++i){
sum+=x[i];
}
return(sum/n);
}
double distance(double *x,double *y,int n){
double sum=0;
for(int i=0;i<n;++i){
sum+=(x[i]-y[i])*(x[i]-y[i]);
}
return(sqrt(sum));
}
int main() {
double *x,*y,*z;
int n;
cin>>n;
create(x,n);
enter(x,n);
create(y,n);
enter(y,n);
create(z,n);
cout<<"a = ( ";
print(x,n);
cout<<")"<<endl;
cout<<"b = ( ";
print(y,n);
cout<<")"<<endl;
add(x,y,z,n);
cout<<"a + b = ( ";
print(z,n);
cout<<")"<<endl;
subtract(x,y,z,n);
cout<<"a - b = ( ";
print(z,n);
cout<<")"<<endl;
cout<<"|a| = "<<length(x,n)<<endl;
normalize(x,z,n);
cout<<"normalized a = ( ";
print(z,n);
cout<<")"<<endl;
cout<<"a * b = "<<dot(x,y,n)<<endl;
cout<<"mean of a = "<<mean(x,n)<<endl;
cout<<"distance (a , b) = "<<distance(x,y,n)<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGNyZWF0ZShkb3VibGUgKiZ4LGludCBuKXsKCXg9bmV3IGRvdWJsZVtuXSgpOwp9CnZvaWQgZW50ZXIoZG91YmxlICp4LGludCBuKXsKCWZvcihpbnQgaT0wO2k8bjsrK2kpewoJCWNpbj4+eFtpXTsKCX0KfQp2b2lkIHByaW50KGRvdWJsZSAqeCxpbnQgbil7Cglmb3IoaW50IGk9MDtpPG47KytpKXsKCQljb3V0PDx4W2ldPDwiICI7Cgl9Cn0Kdm9pZCBhZGQoZG91YmxlICp4LGRvdWJsZSAqeSxkb3VibGUgKnosaW50IG4pewoJZm9yKGludCBpPTA7aTxuOysraSl7CgkJeltpXT14W2ldK3lbaV07Cgl9Cn0Kdm9pZCBzdWJ0cmFjdChkb3VibGUgKngsZG91YmxlICp5LGRvdWJsZSAqeixpbnQgbil7Cglmb3IoaW50IGk9MDtpPG47KytpKXsKCQl6W2ldPXhbaV0teVtpXTsKCX0KfQpkb3VibGUgbGVuZ3RoKGRvdWJsZSAqeCxpbnQgbil7Cglkb3VibGUgc3VtPTA7Cglmb3IoaW50IGk9MDtpPG47KytpKXsKCXN1bSs9eFtpXSp4W2ldOwp9CnJldHVybihzcXJ0KHN1bSkpOwp9CnZvaWQgbm9ybWFsaXplKGRvdWJsZSAqeCxkb3VibGUgKnosaW50IG4pewoJZG91YmxlIHN1bT0wOwoJZm9yKGludCBpPTA7aTxuOysraSl7CglzdW0rPXhbaV0qeFtpXTsKfQpkb3VibGUgbGVuZ3RoPXNxcnQoc3VtKTsKaWYobGVuZ3RoPT0wKXJldHVybjsKCWZvcihpbnQgaT0wO2k8bjsrK2kpewoJCXpbaV09eFtpXS9sZW5ndGg7Cgl9Cn0KZG91YmxlIGRvdChkb3VibGUgKngsZG91YmxlICp5LGludCBuKXsKCWRvdWJsZSBzdW09MDsKCWZvcihpbnQgaT0wO2k8bjsrK2kpewoJCXN1bSs9KHhbaV0qeVtpXSk7Cgl9CglyZXR1cm4oc3VtKTsKfQpkb3VibGUgbWVhbihkb3VibGUgKngsaW50IG4pewoJaWYobj09MClyZXR1cm4gMDsKCWRvdWJsZSBzdW09MDsKCWZvcihpbnQgaT0wO2k8bjsrK2kpewoJCXN1bSs9eFtpXTsKCX0KCXJldHVybihzdW0vbik7Cn0KZG91YmxlIGRpc3RhbmNlKGRvdWJsZSAqeCxkb3VibGUgKnksaW50IG4pewoJZG91YmxlIHN1bT0wOwoJZm9yKGludCBpPTA7aTxuOysraSl7CgkJc3VtKz0oeFtpXS15W2ldKSooeFtpXS15W2ldKTsKCX0KCXJldHVybihzcXJ0KHN1bSkpOwp9CgppbnQgbWFpbigpIHsKZG91YmxlICp4LCp5LCp6OwppbnQgbjsKY2luPj5uOwpjcmVhdGUoeCxuKTsKZW50ZXIoeCxuKTsKY3JlYXRlKHksbik7CmVudGVyKHksbik7CmNyZWF0ZSh6LG4pOwpjb3V0PDwiYSA9ICggIjsKcHJpbnQoeCxuKTsKY291dDw8IikiPDxlbmRsOwpjb3V0PDwiYiA9ICggIjsKcHJpbnQoeSxuKTsKY291dDw8IikiPDxlbmRsOwphZGQoeCx5LHosbik7CmNvdXQ8PCJhICsgYiA9ICggIjsKcHJpbnQoeixuKTsKY291dDw8IikiPDxlbmRsOwpzdWJ0cmFjdCh4LHkseixuKTsKY291dDw8ImEgLSBiID0gKCAiOwpwcmludCh6LG4pOwpjb3V0PDwiKSI8PGVuZGw7CmNvdXQ8PCJ8YXwgPSAiPDxsZW5ndGgoeCxuKTw8ZW5kbDsKbm9ybWFsaXplKHgseixuKTsKY291dDw8Im5vcm1hbGl6ZWQgYSA9ICggIjsKcHJpbnQoeixuKTsKY291dDw8IikiPDxlbmRsOwpjb3V0PDwiYSAqIGIgPSAiPDxkb3QoeCx5LG4pPDxlbmRsOwpjb3V0PDwibWVhbiBvZiBhID0gIjw8bWVhbih4LG4pPDxlbmRsOwpjb3V0PDwiZGlzdGFuY2UgKGEgLCBiKSA9ICI8PGRpc3RhbmNlKHgseSxuKTw8ZW5kbDsKCXJldHVybiAwOwp9