Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
106546 曾煦翔 最大值减最小值 C++ 解答错误 0 0 MS 264 KB 1380 2023-10-12 14:17:07

Tests(0/5):


#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; }


测评信息: