#include<stdio.h>
#include<stdlib.h>
/************
 《Ｃだから飛ばないと思うけど、Perlではとんださくらネット大丈夫かなぁ。》
 《でも、なんとかなるよ、絶対大丈夫だよ。》
 《私、がんばってみるよ、たとえそれが私の名前をしたダメなサーバであっても、このファイルは絶対に壊させない。》
 《あなたのためにも。》
 『そうや、がんばるんやさくら！』
 『カリスマのサイトでも、カルトでもとばんかってんから絶対いける！』
 【クー絶対飛ばしてやるにょ、カウンター飛ばしビームにょ。】
 びーーーーーーーーーー
 《ほええっ、どうしようどうしよう。こういうときは、跳ね返し……そ、そうだちょっと普段の使い方じゃないけど絶対大丈夫！》
 《「ミラ（鏡）ーーーーーーーーーーー！」》

 《ほ、ほええっ。》
 『どないしたさくら！』
 『誰や、おまえ』
 〔Oh! KusoKyojinnoHitterDokone!〕
 《なに言っているの……、この人》
 そのとき、ビームが当たった
 〔Oh! LaserPointerhaYakyujyoujyaKyojinnoHitternidakene.....〕
 【にょーー、防がれたにょーー、きょうのところはゆるしてやるにょ】
 ［今日もすばらしかったですわぁ、さくらちゃん］
 《あ、ともよちゃん。ど、どうなったの？》
 ［ご自分でした行動を覚えていらっしゃらないのですか？さくらちゃんがミラーを出されてカウンター飛ばしビームからカウンタを防いだじゃありませんか］
 《え、でもミラーって……》
 （おうおう、お嬢ちゃん達うちの若いもんがここらへんにけえへんかったか？）
 『だれやおま…………、野村監督や無いですか。阪神今年はＡクラス確定でお願いしますよ』
 《野村監督って？》
 ［さくらちゃんは野球をお好きではありませんね。素晴らしい関西の阪神タイガースというチームの監督さんですのよ］
 （まあまあ、そんなにほめんでもよろしい。そんなことより、ミラーはどこにおるんや？）
 『ミラー、おお、あれはミラーやったんやな』
 《カウンター飛ばしビームを受けて飛ばされてしまって……》
 （そうか……ふふふ、手間が減ったな……）

  Ver 1.01

使用許諾事項
　１．商用目的に使用してはいけません
　２．著作権を削除して使用してはいけません
　３．著作権を削除して２次創作物を作成する、又は２次配布を行ってはいけません
　４．他のＣＧＩなどからカウンターのみを使用する場合、かならず使用者に表示される位置に著作権表示( (c)<a href="http://gochagocha.hypermart.net/">Yuumi</a> )を入れること

*************/
#define 	CURL  "<!--Copyright(C) 2000 Yuumi http://gochagocha.hypermart.net/-->"
/*  gochagocha@geocities.co.jp
*/

#define STEP_COUNT	1000
#define VIEW_COUNT	7
#define MURL	"<a href=\"http://gochagocha.hypermart.net/\" >"

void makeURL( char [] , int );
void myLtoA( char [] , long );

int main( int argc , char *argv[] ){
	char defFName[0x80],fiName[0x100],fiName2[0x100],cList[0x100],tmpStr[0x100];
	long nowCount,baseCount;
	int i;
	FILE *fi,*fi2;

	nowCount = baseCount = 0;

//	puts("Content-type: text/html\n");	//デバッグ時は先頭の//をはずしてね

	strcpy( defFName , "countdat\0" );
	strcpy( fiName , defFName );
	strcpy( fiName2 , defFName );
	strcat( fiName2 , "2\0" );

	if(( fi = fopen( fiName , "ab+" )) > 0){
		fseek( fi , 0L , SEEK_END );
		nowCount = ftell( fi );
		nowCount++;
		if(( fi2 = fopen( fiName2 , "rb+" )) > 0){
			fseek( fi2 , 0L , SEEK_END );
			baseCount = ftell( fi2 ) * STEP_COUNT;
			fclose( fi2 );
		}
		fwrite( "1" , 1 , 1 , fi );
		fclose( fi );
		if(( nowCount % STEP_COUNT ) == 0 ){
			if(( fi2 = fopen( fiName2 , "ab+" )) > 0){
				fwrite( "1" , 1 , 1 , fi2 );
				fclose( fi2 );
			}
			if(( fi = fopen( fiName , "wb+" )) > 0)		fclose( fi );
		}
		baseCount += nowCount;
		myLtoA( cList , baseCount );
		puts( CURL );
		puts( MURL );
		puts( cList );
		puts( "</A>" );
	}else{
		puts("error!");
	}
	return(0);
}

void myLtoA( char ltoastr[] , long src ){
	char tmpStr[0x20];
	long lg = 1000000000;
	int i = 0,j;

	if( src <= 0 ){
		strcpy( ltoastr , "0\0" );
	}else{
		while( lg >= 1 ){
			if( src >= lg ){
				tmpStr[i] = src / lg;
				src = src % ( tmpStr[i] * lg );
				i++;
			}else if( i > 0 ){
				tmpStr[i++] = 0;
			}
			lg *= 0.1;
		}
		for( j = 0 ; j < i ; j++ )	ltoastr[j] = tmpStr[j] + 0x30;
		ltoastr[i] = '\0';
	}
}
