| 比赛 | 
    NOIP2015普及组练习 | 
    评测结果 | 
    AAAAAA | 
    | 题目名称 | 
    增强的减法问题 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    落尘 | 
    运行时间 | 
    0.010 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.26 MiB  | 
    | 提交时间 | 
    2015-11-05 15:48:23 | 
显示代码纯文本
#include <algorithm>
#include <iostream>
#include <fstream>
#include <cstring>
#include <iomanip>
#include <cstdio>
using namespace std;
int N,M,op;
char S[110],T[110];
int NS[310],NT[310],ANS[310];
ifstream fin("sub.in");
ofstream fout("sub.out");
int main(){
	fin>>S>>T;
	N=strlen(S);M=strlen(T);
	if(N<M || (N==M && strcmp(S,T)<0)){
		fout<<"-";
		swap(S,T);
		swap(N,M);
	}
	reverse(S,S+N);reverse(T,T+M);
	for(int i=0;i<N;++i) NS[i]=S[i]-'0';
	for(int i=0;i<M;++i) NT[i]=T[i]-'0';
	for(int i=0;i<110;++i){
		ANS[i]+=NS[i]-NT[i];
		if(ANS[i]<0){
			ANS[i]+=10;
			ANS[i+1]--;
		}
	}
	for(int i=max(N,M)+10;i>=0;--i)
		if(ANS[i]){
			op=i;
			break;
		}
	for(int i=op;i>=0;--i) fout<<ANS[i];
	fout<<endl;
	fin.close();
	fout.close();
	return 0;
}