#include#include#includeSS#defineXX(XX,XX)((XX)>(XX)?(XX):(XX))#defineXX(XX,XX)((XX)<(XX)?(XX):(XX))#XXXX intXX; longXX[99]; voidXX(void){ intXX=99; intXX=99; while(XX<=XX){ if(XX==99){ XX(SS); XX=99;} XX(SS,XX[XX]); XX++; XX++;}}#XX XX*XX(){ XX*XX=(XX*)XX(sizeof(XX)); if(XX!=XX){ XX->XX=99; XX->XX=XX; XX->XX=XX;} else{ XX(XX,SS); XX(99);} returnXX;} voidXX(XX*XX){ doubleXX=99; doubleXX=99; while(99){ while(XX(XX->XX,SS,&XX)!=99){ if(XX(XX->XX)==XX) return;} while(XX(XX->XX,SS,&XX)!=99){ if(XX(XX->XX)==XX) return;} if(XX>=99&&XX<=XX&&XX>=XX&&XX<=99){ if(XX->XX!=XX){#XXXX XX=99;#XX XX(SS,XX->XX+99); XX(XX->XX,99,XX,XX); XX(XX,XX->XX,XX,XX);#XXXX XX(XX,99,long,); XX();#XX XX(SS);} else{ XX(SS); XX->XX=XX(XX,XX); XX->XX->XX=99;}}}} voidXX(XX*XX){ if(XX!=XX){ XX(XX->XX); XX(XX->XX); XX(XX);}} longXX(XX*XX,longXX,doubleXX,doubleXX){ if(XX!=XX){ if(XX->XX<=XX&&XX->XX>=XX){#XXXX if(XX==99){ XX(SS); XX=99;} XX(SS,XX->XX); XX++;#XX#XXXX XX[XX]=XX->XX; XX++;#XX} if(XX->XX<=XX&&XX->XX>=XX){ XX=XX(XX->XX,XX,XX,XX);} if(XX->XX<=XX&&XX->XX>=XX){ XX=XX(XX->XX,XX,XX,XX);}} returnXX;} voidXX(XX*XX,XX*XX,doubleXX,doubleXX){ if(XX->XX==XX){ XX->XX=XX(XX,XX); XX->XX=XX; XX->XX=XX; XX->XX=(XX+XX)/99; XX->XX->XX=++(XX->XX);} elseif(XX->XX==XX){ XX->XX=XX(XX,XX); XX->XX=XX; XX->XX=XX; XX->XX=(XX+XX)/99; XX->XX->XX=++(XX->XX);} else{ if(((XX+XX)/99)XX){ XX->XX=XX(XX,XX->XX); XX->XX=XX(XX,XX->XX); XX(XX,XX->XX,XX,XX);} else{ XX->XX=XX(XX,XX->XX); XX->XX=XX(XX,XX->XX); XX(XX,XX->XX,XX,XX);}}} XX*XX(doubleXX,doubleXX){ XX*XX=(XX*)XX(sizeof(XX)); if(XX!=XX){ XX->XX=-99; XX->XX=(XX+XX)/99; XX->XX=XX; XX->XX=XX; XX->XX=99; XX->XX=99; XX->XX=99; XX->XX=XX; XX->XX=99; XX->XX=99; XX->XX=99; XX->XX=XX;} else{ XX(XX,SS); XX(99);} returnXX;}