提交时间:2023-10-11 13:53:45
运行 ID: 106406
#include<bits/stdc++.h> using namespace std; int compare(string str1,string str2) { if(str1.length()>str2.length()) return 1; else if(str1.length()<str2.length()) return -1; else return str1.compare(str2); } string add(string str1,string str2){ string str; int len1=str1.length(); int len2=str2.length(); if(len1<len2) { for(int i=1;i<=len2-len1;i++) str1="0"+str1; } else { for(int i=1;i<=len1-len2;i++) str2="0"+str2; } len1=str1.length(); int cf=0; int temp; for(int i=len1-1;i>=0;i--) { temp=str1[i]-'0'+str2[i]-'0'+cf; cf=temp/10; temp%=10; str=char(temp+'0')+str; } if(cf!=0) str=char(cf+'0')+str; return str; } string sub(string str1,string str2) { string str; int tmp=str1.length()-str2.length(); int cf=0; for(int i=str2.length()-1;i>=0;i--) { if(str1[tmp+i]<str2[i]+cf) { str=char(str1[tmp+i]-str2[i]-cf+'0'+10)+str; cf=1; } else { str=char(str1[tmp+i]-str2[i]-cf+'0')+str; cf=0; } } for(int i=tmp-1;i>=0;i--) { if(str1[i]-cf>='0') { str=char(str1[i]-cf)+str; cf=0; } else { str=char(str1[i]-cf+10)+str; cf=1; } } str.erase(0,str.find_first_not_of('0')); return str; } int n,m,s; string s1,s2,s3,maxn,minn; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>s1; if(i==1) { maxn=s1; minn=s1; continue; } if(maxn.length() ==s1.length()){ for(int i=s1.length()-1;i>=0;i--){ if(int(s1[i])>int(maxn[i])){ maxn=s1; break; } if(int(s1[i])<int(maxn[i])){ break; } } } if(minn.length() ==s1.length()){ for(int i=s1.length()-1;i>=0;i--){ if(int(s1[i])<int(minn[i])){ minn=s1; break; } if(int(s1[i])>int(minn[i])){ break; } } } if(maxn.length() <s1.length()){ maxn=s1; } if(minn.length() >s1.length()){ minn=s1; } } cout<<sub(maxn,minn); return 0; }