#include<stdio.h>
FILE*R,*S;int i=54,h,s,t,p,(*k)(FILE*,long,int)=fseek;O(int v,int n=4){for(;n--
;v>>=8)putc(v,S);}I(){for(t=i=0;i<4;t+=getc(R)<<i++*8);}main(int c,char**v){for
(R=fopen(v[1],"rb"),S=fopen(v[2],"wb");i--;putc(getc(R),S));for(;i++<256;O(i<<
16|i<<8|i));k(R,18,0);I();s=t;I();h=t*s;c=(s+3)/4*4*t;for(k(R,54,0);h--;h%s?0:(
O(0,s%4?4-s%4:0),k(R,s%4,1)))p=getc(R)*28,p+=getc(R)*151,p+=getc(R)*77,putc(p>>
8,S);k(S,34,0);O(c);k(S,2,0);O(c+1078);k(S,5,1);putc(4,S);k(S,28,0);putc(8,S);}

C++で何とか7行達成.
関数の戻り値の型省略してるんで厳密にはC++になりきれてませんが,コンパイラの
デフォルト警告Levelだとwarningで許してくれたのでご容赦の程…….
(BCC32,VC.NET共にwarningですた.)
fcloseやmainのreturn省略の辺りはとても残念です.