为什么测试点7过不去???
查看原帖
为什么测试点7过不去???
1229128
lyx1234567楼主2024/8/17 18:25

#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int max(int a,int b){
	return a>b?a:b;
}
int abs(int a){
	return a>0?a:-a;
}
char maxc(char *a,char *b){
	if(a[0]=='-' && b[0]!='-' || a[0]!='-' && b[0]=='-'){
		return a[0]=='-'?-1:1;
	}else if(a[0]!='-' && b[0]!='-'){
		if(strlen(a)!=strlen(b)){
			return max(strlen(a),strlen(b))==strlen(a)?1:-1;
		}else{
			return strcmp(a,b);
		}
	}else{
		if(strlen(a)!=strlen(b)){
			return max(strlen(a),strlen(b))==strlen(a)?-1:1;
		}else{
			return -strcmp(a,b);
		}
	}
}
char *withoutZero(char *a){
	while(strlen(a)!=1){
		if(a[0]=='0'){
			for(int i=1;i<strlen(a);i++){
				a[i-1]=a[i];
			}
			a[strlen(a)-1]='\0';
		}else{
			break;
		}
	}
	return a;
}
char *subStrings(char *num1,char *num2){
	if(maxc(num1,num2)==-1){
		return subStrings(num2,num1);
	}else if(maxc(num1,num2)==0){
		return "0";
	}else{
		int i=strlen(num1)-1,j=strlen(num2)-1,add=0,len=0;
		char *ans=malloc(sizeof(char)*(max(strlen(num1)-1,strlen(num2)-1)+1));
		for(i=strlen(num1)-1,j=strlen(num2)-1;j>=0;i--,j--){
	    	int x=num1[i]-'0',y=num2[j]-'0',result;
	    	if(x<y || x-y<add && x-y>=0){
	    		result=10+x-y-add;
	    		add=1;
			}else if(x-y>=add){
				result=x-y-add;
				add=0;
			}
			ans[len++]=result+'0';
		}
		while(i>=0){
			if(num1[i]<add){
				ans[len++]=10+num1[i--]-add;
				add=1;
			}else{
				ans[len++]=num1[i--]-add;
				add=0;
			}
		}
	    for(int i=0;i<len/2;i++){
	        int t;
	        t=ans[i];ans[i]=ans[len-i-1],ans[len-i-1]=t;
	    }
	    ans[len++]=0;
	    return withoutZero(ans);
	}
}
int main(){
	int check=0;
	char a[20000],b[20000],*t;
	scanf("%s%s",a,b);
	if(maxc(a,b)==-1){
		printf("-");
	}
	printf("%s\n",subStrings(a,b));
	return 0;
}

测试点的数据: 9740225182045774831320458636428164258227027580021105007544171308961308365385113439808212338206432653119545345091959805029841269237663881503605069442242664296800721911928769614798222790912959405681796349130899812615445530508482416477164934249863005522639569951762394268637987320218612853088022399312785144833204791369926697864807547274596934754189602856814832211144984174422642638976109427347664383238257794669549945869388235705056938306736097251085190172294887882603181879279163079811481084497789042561680117238120927038976404540147544626953459095174203274761610237241926988732031446441116654055944631889159113323346406621552475978584852864953833378058090004631211814479538559890473561724992598873290966105434750333255620397506995647821775745792336925828838873795859604769664564169802941451849612078198990333521567882965941992902636156184339827301817399925315301553498991392395158566648839297225508534336799744306876758974648669373259104132064472774564692340422508082826680910001260970577151741165882139696888255970759318126060394196724585812000550026148846788988837539954856887470070203143044285555686959470197547082016318601821722054082423894045191603452687696640545160676254899178747728131568326079409939589192211959706291935936444300208157508607894714302011024843952253647454948331617837282924004158988043702378161963184231357627380284924785116160754139055766793328459409247084177046115514781630928847761153656896204672888580313030082951947665074189480704808075811825066101732864497055127492432971907324322138960240839353779748845957963432635057182525648416784511679875893736973232853909890132321555508487065300834340762171503722422725333442031242754048186102443154828819707926478687877875572395246840518855376184789143207851238232895170256764126065105182889374858132654547225150866097402197359490666291676204068519010353155473011473389111097103988130758611796222394719169264572810979632360499700686689970085279567417438804405987293424029821439265148936915907349745001812447422223749076813527687468179393347811132437748788463910316048499845999249280966825364975568036870774967492011917402900448566264912894967151883458021508266870715714328610590450352346613050403888175335475336523766513167650462936017220682337359246848523802144666575193964333796937069613514483942427303466067361941279451835294358308433280682745831407500674593337590164108404588618749918653588645459119938973046746590539822271824896286818354816415624692985847195236542559555900427900844685956221095314183459716654291043078168968881882193853213159015203268082433747123565019966722621824975500896524752333198597977132554911470101139395654582320248576369532075094746055210053608622767252011940732698209135520941262340572352822086800624329708272951816977417349251066301492361690732662707167244390495127908093630251975866282193057116728042110616848217480693176344050629327337568721882722752191352746429415903562210078460550859277486409715290523385731932458260552479053232087673402243109626567716747452713075414470333645471684593727954468892461259146904957157206661887785926618033735561944881089478018512051701836954157815986241919525710938822600891117694162187130213641738547384005355071728315222913968369184098903649581062395533050903424713787521553465428995236390425507526559452189428103613764635442568377524894736913931702643576161672633329354618570164688714761704460689650577147931613842812361511640152536683072755685380443527124949297946015392150385532376794963031162598464005001149753962609690297611187869214157561119433904113434371585671415556349839842288462630663131353040793816499822442990305230558370169045325478285667374631548353101017975128469019304244341864649962787299257792116924308668763499602822476619551795236561858444698805884898819503755213641384454233524648271876005212319617098993221633693330317880501320085619742368135977596096751021067329934002821471577356326915274032818994589603083045442246468897429228878220377938482206855255132846203143528279569441168360686441501952976017511342434076773811563660744955109366015540658059924648030695900212900333559861747951859677697842022890592143927466200916910538229584370031109803419393026513924043207829818018027169658309198694131159871758734129578098908706591835383433209569685527313213135004776685727863899605519962682368083294551035307330976052792032260357900946005324057811420344196670050713263527743690691594571990118722674600600870053181641895171334168774868300106893853222566384537979442454958521339044007577901620819038158289543920399004836706087234142355178495059518435353900189332521023163507461629621000190182325103429773476540114386432236962835813321995917384174380757073744876288474980378633727080380330373912061817213578058548697364306590341449490417188425777616314683408351203299094592813217805451496179642384922767216351657004708431395050730498638593108471208217004825107152880001399401235456338598819044114427423891782914916414966725257561805646605048017666850140079766057395655372733017310403705051512971900805896513643948293803591862315854278630514353325 456519852589832440007677871232022318461079999531387407407214943819276154755857768768733104439758351580787754744201221461513648418741903714808488334778189056792818310474657509548717980507700366118086676653052654898418552824936682629598586366313992430788780077600983448167748099518685431346478808265828088009998164710813301757871349330732906549140193338736705308724416004219771373518623359297303103752794232340670270225286174541369725922533034865021733737954216529771618867429669852890619297047435488664216650726908089903751460358810788692111488311423230434573373009610929577422424449910588953254929414432999546273535454215082918419731362538753351025871615428211135704342308215525926961552560594423496653287258940447784033987621769151682864634326970764482809015118419049842145765195362975720844371761946173156791252880601452797269352513470435204954103038080390268185200889631912731858731601453328535107269866281056868789560789217723772226071780986241781001877542026890909071140006266997641004767961445638386121987329280709461738429697514604337957996244950943465725901050185116917465952720972844890832747015379338057396369925238109287106516962440750969019690574211028308927886381087436168065367372893586439252478951529039727072633605482396193109559587162006182904009282363268082865695232055866530395390721994961027183142770463733304211537843243838434556390958246038246148099938618183501689406045174512029841993466110097037916092528581342639324048267648480533305206879101714919046215448815047209333994274049103670053851737122467374672106064555447849968354985713712963947229226028219346102449456005564776238412566503357956077888244849074356837522545313688681141794323026737874555744949463430730977406328001827161508325517630129416361233634337821590672672897524260380120833755767561820151420826183501474227040889128549442726558317118234329731299387578451643186934112007926806016020849503969095216211453677636377129549305877773909687868497095291215918758477504259461791229707758029090594149553213172450643710714212363174982289491110351555359702414441352892985390419015861419663882469332455802047630857475001287491315922395980379904024809420571684401359234237268008111757452410641397088569037004596621587375163220070245198575954871640250402757207220243941370281732175254909927019512073473232579602180446993862101953844908283851432652744950072086028366494853266421108838178984968197138142524108196001208865220540095804094522767819669002305849357647793005238657593353704997254544544944918384620223771485672149082648165383809551046431014466896252231006227546941210365293049327856804562782561179801769927364396190470706345806167913568608325265661457227707383223165054154873668794157692828375348904003415762544034075359861416043168926858278200165877566266436622433669123829042967666033295719290051223161108527580276090246499029186302957396449484728929587922908623092139334574320300922699152133299516790745481457012652247705088808685387237856067714862863137512050296027212324529418501792743859494405385695425998321860702718030324124789949882927408457952190880201867916100705235901797148992573260644313250206937924569961470955454276965183659093023260027142607873081839743726215715554107925951455984310308682410924918147462858740174680587506530030071313032418470476349925176340700452639872418155270505061412866604153440769124083226375525341944132658723522597575425384673541339143451671786740883669391907719666231950789939406716542347824110939725619284029701952889765463025463543255413056881295424324067126518493696435433302671709194289460769003984972939449667141403031787871123036286753022827692636352070904293304394043774956204561358605661617644737688190823850670136356373791243312649846833976387375247441390700992437879765213211463547548863718048536009256793754044727590725964173183379850492080244311636737129023822503976445378623900696927054142034026723351538338780370944076081917921243704628707292582170022276776806887357739246033651968953265692310632883048906647376643891416640566528359835600614859994233464064523596064162503561665242098771428834893320445863805445687271303827372072210897512508912201628447264294558439673870984336938947156783939131091271788768086604259581295087152390890844240086529137963377354587284424987747051218346452651588022703048781572881979678800276281519885759760157916167142246260806098973113313943948384935782123305813125410467178307833410557499796682794538099468089942443347796806149791887160869802346313875392564662425650544308380715212000454534807981565205729838756661730754920762105732250580595162729610699349884215817591749245588003127692105808521047882759420937840943167123491549267154775274723571355068835397139134202801906394651816734956781704280612479502385603228584945031791969089471170407451897020556447612062525158038302496762369375143952772238271860684677903476171443919312291206690498450677319421438254096169888935736094060155740421874565950696556003956919210410427729340564471088656018468165891581225331706149786944056366274895566917712357777567706842061542579516471722

2024/8/17 18:25
加载中...