Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
106168 | 陈志轩 | 最大值减最小值 | C++ | 通过 | 100 | 0 MS | 280 KB | 1435 | 2023-10-10 13:11:09 |
#include<bits/stdc++.h> using namespace std; int a[10087],b[10087]; string s[114]; string max_(string x,string y){ if (x.size() == y.size()){ if (x >= y){ return x; } return y; } else{ if (x.size() > y.size()){ return x; } return y; } } bool cmp(string x,string y){ if (x.size() == y.size()){ if (x >= y){ return 1; } return 0; } else{ if (x.size() > y.size()){ return 1; } return 0; } } void slove(string x,string y){ //string x,y; //cin>>x>>y; bool f = false; if (max_(x,y) == y){ swap(x,y); f = true; } int xs = x.size(); int ys = y.size(); for (int i = xs - 1;i >= 0;i--){ a[i] = x[xs - i - 1] - 48; } for (int i = ys - 1;i >= 0;i--){ b[i] = y[ys - i - 1] - 48; } int maxl = max(xs,ys); int o = 0; for (int i = 0;i < maxl;i++){ a[i] -= b[i]; if (a[i] < 0){ a[i + 1]--; a[i] += 10; } } maxl += 2; while (a[maxl] == 0 && maxl >= 0){ maxl--; } if (maxl == -1){ cout<<0<<endl; return ; } if (f){ cout<<"-"; } for (int i = maxl;i >= 0;i--){ cout<<a[i]; } return ; } int main(){ int n; cin>>n; for (int i = 1;i <= n;i++){ cin>>s[i]; } sort(s + 1,s + n + 1,cmp); slove(s[1],s[n]); return 0; }