/*== 疑似(pseudo)コード用ヘッダーファイル ==*/ #if !defined (__pseudo__) #define __pseudo__ /*-- Ex01 --*/ #include #define FUNCTION #define FUNC #define Main() void main(void) #define VARIABLE { #define VAR { #define BEGIN #define ENDFUNCTION } #define ENDFUNC } #define END } #define WriteString(str)\ printf("%s",str) #define WriteS(str) printf("%s",str) #define WriteLine(str)\ printf("%s\n",str) #define WriteLn printf("\n") /*-- Ex02 --*/ typedef double REAL; /*8バイト長実数*/ #define Real(eq) (REAL)(eq) #define ReadReal(var)\ { while(scanf("%lf",&(var))<1)\ (void)getchar();\ } #define ReadR(var) ReadReal(var) #define ScanReal(var) scanf("%lf",&(var)) #define WriteReal(eq) printf("% g",Real(eq)) #define WriteR(eq) WriteReal(eq) #define DebugReal(eq)\ printf(#eq"=% g\n",Real(eq)) #define DebugR(eq) DebugReal(eq) /*-- Ex03 --*/ typedef long int INT; /*4バイト長整数*/ typedef long int INTEGER; #define Int(eq) (INT)(eq) #define LOOP while(1){ #define EXITLOOP break #define EXIT break #define ENDLOOP } #define ReadInt(var)\ { while(scanf("%ld",&(var))<1)\ (void)getchar();\ } #define ReadI(var) ReadInt(var) #define ScanInt(var) scanf("%ld", &(var)) #define WriteInt(eq) printf("% ld",Int(eq)) #define WriteI(eq) WriteInt(eq) #define DebugInt(eq)\ printf(#eq"=% ld\n",Int(eq)) #define DebugI(eq) DebugInt(eq) #define MOD % /* 余り */ /*-- Ex04 --*/ #define IF( cond) if( cond ){ #define ENDIF } #define EQL == /*等しい(equal)*/ #define NEQ != /*等しくない(not equal)*/ #define WriteStringFormat(str, width, n)\ printf("%*.*s", width, n, str) #define WriteStringF(str, width, n)\ WriteStringFormat(str, width, n) #define WriteRealFormat(eq, width, n)\ printf("%*.*g",width,n,Real(eq)) #define WriteRealF(eq, width, n)\ WriteRealFormat(eq, width, n) #define WriteIntFormat(eq, width, n)\ printf("%*.*ld",width,n,Int(eq)) #define WriteIntF(eq, width, n)\ WriteIntFormat(eq, width, n) /*-- Ex05 --*/ typedef long int* PointerToINT; typedef long int* PtrINT; #define FOR( n, fst, lst)\ for(n=(fst);n<=(lst);n++){ #define ENDFOR } #define AddressOf( var) &(var) #define ADR( var) &(var) #define DebugArrayInt(ary,fst,lst)\ { long i;\ printf(#ary"[%ld..%ld]=",\ (long)(fst),(long)(lst));\ for(i=fst;i<=lst;i++){\ printf("% ld", ary[i]);\ }\ printf("\n");\ } /*-- Ex06 --*/ typedef double* PointerToREAL; typedef double* PtrREAL; #define InputReal(var)\ printf(#var"? ");ReadReal(var) #define ObjectOf( var) *(var) #define OBJ( var) *(var) #define SWAP(type, xx, yy)\ {type d_=xx;xx=yy;yy=d_;} /*-- EX07 --*/ #define DebugArrayReal(ary,fst,lst)\ { int i;\ printf(#ary"[%ld..%ld]=",\ (long)(fst),(long)(lst));\ for(i=fst;i<=lst;i++){\ printf("% .14g", ary[i]);\ }\ printf("\n");\ } /*-- Ex08 --*/ #define ELSEIF(cond) }else if(cond){ #define ELSE }else{ #define AND && #define OR || #define MLOOP LOOP #define EXITMLOOP(nn)\ goto _EndMultiLoop##nn #define ENDMLOOP(nn)\ }_EndMultiLoop##nn:; /*-- Ex09 --*/ #define SWITCH( c ) switch( c ){ #define CASE break; case #define OTHER break; default #define ENDSWITCH } /*-- Ex10 --*/ #define WHILE(cond) while(cond){ #define ENDWHILE } #define REPEAT do { #define UNTIL(cond) }while(!(cond)); #define FORINC( n,fst,lst,step)\ for(n=(fst);n<=(lst);\ n+= (step)){ #define FORDEC( n,fst,lst,step)\ for(n=(fst);n>=(lst);\ n-= (step)){ #define INC(v) (v)++ /*1増す*/ #define DEC(v) (v)-- /*1減らす*/ /*-- Ex11 --*/ typedef void VOID; #define TYPE #define InputInt(var)\ printf(#var"? "); ReadInt(var) #define RETURN return /*-- Ex12 --*/ #define STATIC static #define StaticINT static INT #define StcINT static INT #define StaticREAL static REAL #define StcREAL static REAL /*-- Ex13 --*/ typedef unsigned char CHAR; typedef unsigned char* PtrCHAR; #define StaticCHAR static CHAR #define StcCHAR static CHAR #define ReadString(str) scanf("%s",str) #define ReadS(str) ReadString(str) #define DebugString(str) \ printf(#str"= \"%s\"\n", str) /*-- Ex14 --*/ #define POINTER * #define PTR * #define STRUCT typedef struct{ #define ENDSTRUCT(name) }name; /*-- Ex15 --*/ #define SwapPtr(p1,p2) \ { void *ptmp;ptmp=(p1);\ p1=(p2);p2= ptmp;\ } /*-- Ex16 --*/ #define Read1S(str) scanf("%1s",str) #define WriteChar(var) printf("%c",(CHAR)var) #define WriteC(var) WriteChar(var) #define DebugChar(var)\ printf(#var"=%c\n",(CHAR)var) /*-- Ex17 --*/ #define ReadHex(var) scanf("%x",&(var)) #define WriteHex(var) printf("%x",(int)var) #define WriteH(var) WriteHex(var) #define DebugHex(var)\ printf(#var"=%x\n",(int)var) /*-- Ex18 --*/ typedef FILE* PointerToFILE; typedef FILE* PtrFILE; #define OpenFileRead(fname,fp)\ {if(( fp =fopen(fname,"r"))==NULL){\ printf("Can't open \"%s\" !\n", fname);\ exit(1);}} #define OpenFileWrite(fname,fp)\ {if(( fp =fopen(fname,"w"))==NULL){\ printf("Can't open \"%s\" !\n", fname);\ exit(1);}} #define OpenFileAppend(fname,fp)\ {if(( fp =fopen(fname,"a"))==NULL){\ printf("Can't open \"%s\" !\n", fname);\ exit(1);}} #define FileReadInt(var,fp)\ {while(fscanf(fp,"%ld",&(var))<1)\ (void)fgetc(fp);} #define FileReadI(var,fp) FileReadInt(var,fp) #define FileReadReal(var,fp)\ {while(fscanf(fp,"%lf",&(var))<1)\ (void)fgetc(fp);} #define FileReadR(var,fp) FileReadReal(var,fp) #define FileRead1S(var,fp) fscanf(fp,"%1s",&(var)) #define FileWriteInt(var,fp)\ fprintf(fp,"% ld",(var)) #define FileWriteI(var,fp) FileWriteInt(var,fp) #define FileWriteReal(var,fp)\ fprintf(fp,"% g",(var)) #define FileWriteR(var,fp) FileWriteReal(var,fp) #define CloseFile(fp) fclose(fp) /*-- Ex19 --*/ #define OpenBinaryFileRead(fname,fp)\ {if(( fp =fopen(fname,"rb"))==NULL){\ printf("Can't open \"%s\" !\n", fname);\ exit(1);}} #define OpenBinaryFileWrite(fname,fp)\ {if(( fp =fopen(fname,"wb"))==NULL){\ printf("Can't open \"%s\" !\n", fname);\ exit(1);}} #define OpenBinaryFileAppend(fname,fp)\ {if(( fp =fopen(fname,"ab"))==NULL){\ printf("Can't open \"%s\" !\n", fname);\ exit(1);}} /*-- Ex20 --*/ #define MemAlloc( type, nelem, ptr)\ { ptr= (type *)malloc(\ (size_t)(sizeof(type)*nelem));\ if(!ptr){\ printf("out of memory!\n");\ exit(1);\ }\ } #define NewAlloc( type, nelem, ptr )\ { ptr=(type *)calloc( (size_t)(nelem),\ (size_t)sizeof( type));\ if(!ptr){\ printf("out of memory!!\n");\ exit(1);\ }\ } #define Free( ptr) free( ptr) /*-- Ex21 --*/ #define SwapReal( v1, v2) \ { REAL r_; r_= (v1); v1= (v2); v2= r_;} #define SwapR( v1, v2) SwapReal4( v1, v2) #define SwapReal4( v1, v2) \ { REAL4 r_; r_= (v1); v1= (v2); v2= r_;} #define SwapR4( v1, v2) SwapReal4( v1, v2) #define SwapInt( v1, v2) \ { INT r_; r_= (v1); v1= (v2); v2= r_;} #define SwapI( v1, v2) SwapInt( v1, v2) #define SwapInt2( v1, v2) \ { INT2 r_; r_= (v1); v1= (v2); v2= r_;} #define SwapI2( v1, v2) SwapInt2( v1, v2) typedef short int INT2; typedef short int* PointerToINT2; typedef short int* PtrINT2; #define StaticINT2 static INT2 #define StcINT2 static INT2 #define Int2(eq) (INT2)(eq) #define ReadInt2(var)\ { while(scanf("%hd",&(var))<1)\ (void)getchar();\ } #define ReadI2(var) ReadInt2(var) #define WriteInt2(eq) WriteInt(eq) #define WriteI2(eq) WriteInt(eq) #define DebugInt2(eq) DebugInt(eq) #define DebugI2(eq) DebugInt(eq) typedef float REAL4; typedef float* PointerToREAL4; typedef float* PtrREAL4; #define StaticREAL4 static REAL4 #define StcREAL4 static REAL4 #define Real4(eq) (REAL4)(eq) #define ReadReal4(var)\ { while(scanf("%f",&(var))<1)\ (void)getchar();\ } #define ReadR4(var) ReadReal4(var) #define WriteReal4(eq) WriteReal(eq) #define WriteR4(eq) WriteReal(eq) #define DebugReal4(eq) DebugReal(eq) #define DebugR4(eq) DebugReal(eq) /*-- other --*/ #define OpenFile(fname, mode, fp)\ { if(( fp =fopen(fname,mode))==NULL){\ printf("Can't open \"%s\" !\n", fname);\ exit(1);\ }\ } #define FileRead( ary, size, nitems, fp)\ { INT ii;\ if((ii= fread(ary,size,nitems, fp)) < nitems){\ WriteI(ii); WriteS(" items\n");\ printf("Read error in FileRead\(\)\n");\ }\ } #define FileWrite( ary,size, nitems, fp)\ { INT ii;\ if((ii= fwrite(ary,size,nitems, fp)) < nitems){\ WriteI(ii); WriteS(" items\n");\ printf("Write error in FileWrite\(\)\n");\ }\ } #define FileTell( pos, fp)\ { if( (pos=ftell(fp))< 0)\ printf("Error in FileTell()!\n");\ } #define LOCAL static #define MAX(v1,v2) ((v1)>(v2)? (v1):(v2)) #define MIN(v1,v2) ((v1)<(v2)? (v1):(v2)) #define EXITFOR break #define THEN #define OK 0 #define YES 1 #define NO 0 #define ON 1 #define IsOdd( var) (var%2) typedef unsigned long int UINT; typedef UINT* PtrUINT; #define WriteUInt(eq) printf("% lu", (eq)) #define WriteUI(eq) WriteInt(eq) /*-- END ----------------------------------*/ #endif