Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
106546 | 曾煦翔 | 最大值减最小值 | C++ | 解答错误 | 0 | 0 MS | 264 KB | 1380 | 2023-10-12 14:17:07 |
#include<bits/stdc++.h> using namespace std; #define int long long int n,f1[100009],f2[100009],f[100009]; string maxx,minn; string x; inline string maxxx(string tmp1,string tmp2) { if(tmp1.size()>tmp2.size()) return tmp1; if(tmp1.size()<tmp2.size()) return tmp2; for(int i=0;i<tmp1.size();i++) if(tmp1[i]>tmp2[i]) return tmp1; else if(tmp1[i]<tmp2[i]) return tmp2; return tmp1; } inline string minnn(string tmp1,string tmp2) { if(tmp1.size()>tmp2.size()) return tmp2; if(tmp1.size()<tmp2.size()) return tmp1; for(int i=0;i<tmp1.size();i++) if(tmp1[i]<tmp2[i]) return tmp1; else if(tmp1[i]>tmp2[i]) return tmp2; return tmp1; } inline void add_un(string x,string y) { int len=x.size()-1; for(int i=len;i>=0;i--) f1[i+1]=x[i]-'0'; for(int i=len;i>=0;i--) f2[i+1]=y[i]-'0'; for(int i=len+1;i>0;i--) if(f2[i]<0) f2[i]=0; len++; for(int i=len;i>=1;i--) { f[i]=f1[i]-f2[i]; if(f[i]<0) f[i]+=10,f[i-1]--; } return; } signed main() { cin>>n; minn="9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"; for(int i=1;i<=n;i++) cin>>x,maxx=maxxx(maxx,x),minn=minnn(minn,x); add_un(maxx,minn);int ff=0; for(int i=1;i<=maxx.size();i++) { if(f[i]==0 && ff==0) continue; ff=1; cout<<f[i]; } return 0; }