´ÙÀ½ ¸ðÀÇ°í»ç´Â koi4u¸ðÀÇ°í»ç·Î ¿¬°áÀÌ µË´Ï´Ù. ¸¹Àº Âü°¡ ¹Ù¶ø´Ï´Ù.
"; print "
¹ü·Ê : o - Accepted, x - Wrong Answer, s - signal out(runtime error), t - Time Limit Exceeded


"; print "Æò°¡ °á°ú

"; print "
Gold Medal - ÇÑ ¹øÀÌ¶óµµ Á¦ÃâÇÑ Âü°¡ÀÚÀÇ 10%, Silver Medal - Âü°¡ÀÚÀÇ 20%, Bronze Medal - Âü°¡ÀÚÀÇ 30%


"; print "
[ Winner!! ] (747pts)

: gs12117

"; print "



Gold Medal List!! (cutline 715pts)


: gs12117, gs12065

"; print "



Silver Medal List (cutline 467pts)

: mufflin, k5888200, gs12120

"; print "



Bronze Medal List (cutline 250pts)


: gs12059, ainta, sunghyen, nextpeace


"; print "Àüü Á¡¼öÇ¥

"; $dir="/var/www/bbs/moi/14th/"; $pnum = 3; $files1 = scandir($dir); $number=1; $iuser = array(); $ip1 = array(); $ip2 = array(); $ip3 = array(); $ip4 = array(); $ip5 = array(); $isc = array(); $rank = array(); for( $i=0 ; $files1[$i] != NULL ; $i++ ) { if(/*$files1[$i]!="admin" && */$files1[$i]!="." && $files1[$i]!=".." && is_dir($files1[$i])==true) { $fp = fopen("./$files1[$i].tm", "r"); // if($fp==NULL) print "can't open!!"; $buffer = fread($fp, filesize("./$files1[$i].tm")); $solve = explode("\n", $buffer); $ftime = $solve[0]; //print "./$files1[$i].tm($ftime,$fp)[".time()."]
"; $number++; $score=0; if( $number%2 == 1 ) $bcolor = "ffffff"; else $bcolor = "ececff"; $id_name=""; for($ttt=0;$ttt<= strlen($files1[$i]) ;$ttt++) if(1<=$ttt&&$ttt<=-2) $id_name.= "*"; else $id_name.=SUBSTR($files1[$i],$ttt,1); $iuser[$number] = $id_name; $ttt = 15000-(time()-$ftime); $hh=($ttt-($ttt%3600))/3600; $mm=(($ttt-$hh*3600)-(($ttt-$hh*3600)%60))/60; $ss = intval(3600-(time()-$ftime))%60; if(time()-$ftime <= 15000) $iuser[$number] = "".$iuser[$number]."(".$hh."h".$mm."m".$ss."s)"; for( $j=1 ; $j <= $pnum ; $j++ ) { $sz = 20; $prob_result = $dir.$files1[$i].'/'.$files1[$i].'.res'.$j; if(file_exists($prob_result)==true) { $score+=($j*0.001); $fp = fopen($prob_result, "r"); $str = fgets($fp, filesize($prob_result)+1); $resres = ""; for( $k=0; $k <= strlen($str) ; $k++ ) if(SUBSTR($str, $k, 1)== "o"){ $resres.=''.SUBSTR($str, $k, 1).''; if($j==1) $score += 25+($j*0.001); else if($j==2) $score += 17.5+($j*0.001); else if($j==3) $score += 40+($j*0.001); else if($j==4) $score += 21.43+($j*0.001); else if($j==5) $score += 12+($j*0.001); } else if(SUBSTR($str, $k, 1)=="x") $resres.=''.SUBSTR($str, $k, 1).''; else if(SUBSTR($str, $k, 1)=="t") $resres.=''.SUBSTR($str, $k, 1).''; else if(SUBSTR($str, $k, 1)=="s") $resres.=''.SUBSTR($str, $k, 1).''; } else $resres='Not submited!!'; if($j==1) $ip1[$number] = $resres; else if($j==2) $ip2[$number] = $resres; else if($j==3) $ip3[$number] = $resres; else if($j==4) $ip4[$number] = $resres; else $ip5[$number] = $resres; } $isc[$number]=$score; } } for($i=2;$i<=$number;$i++) for($j=2;$j<=$number;$j++) if( $isc[$i] < $isc[$j] ) $rank[$i]++; for($i=2;$i<=$number-1;$i++) for($j=$i+1;$j<=$number;$j++) if($isc[$i] < $isc[$j]) { $tttt=$iuser[$i];$iuser[$i]=$iuser[$j];$iuser[$j]=$tttt; $tttt=$ip1[$i];$ip1[$i]=$ip1[$j];$ip1[$j]=$tttt; $tttt=$ip2[$i];$ip2[$i]=$ip2[$j];$ip2[$j]=$tttt; $tttt=$ip3[$i];$ip3[$i]=$ip3[$j];$ip3[$j]=$tttt; $tttt=$ip4[$i];$ip4[$i]=$ip4[$j];$ip4[$j]=$tttt; $tttt=$ip5[$i];$ip5[$i]=$ip5[$j];$ip5[$j]=$tttt; $ttttt=$isc[$i];$isc[$i]=$isc[$j];$isc[$j]=$ttttt; $ttttt=$rank[$i];$rank[$i]=$rank[$j];$rank[$j]=$ttttt; } print 'Result for All Participant (µ¿Á¡ÀÏ °æ¿ì¿¡ 3, 2, 1¹ø ¹®Á¦ÀÇ Á¡¼ö ¼øÀ¸·Î ¿ì¼±¼øÀ§°¡ Á¤ÇØÁý´Ï´Ù.)
'; for($i=2; $i <= $number ; $i++ ) { if( $i%2 == 1 ) $bcolor = "ffffff"; else $bcolor = "ececff"; print ' '; print ' '; print ' '; print ' '; print ' '; print ''; print ""; } print "
Rank user Strange (250) Hope (350) Bracket (400)
'.($rank[$i]+1).''.$iuser[$i].''.$ip1[$i].''.$ip2[$i].''.$ip3[$i].''.(floor($isc[$i])).'

"; print "À̹ø ´ëȸ¿¡ Âü°¡ÇϽŠ".($number)."ºÐ ¸ðµÎ ¼ö°íÇϼ̽À´Ï´Ù!! ´ÙÀ½ °æ¿¬À» ±â´ëÇϼ¼¿ä~
"; print "¾ÕÀ¸·Î ±âȸ°¡ µÈ´Ù¸é »çÀºÇ°µµ Áغñ¿¹Á¤ ^^;"; print "


Here is some User's perfact Solution!!


1. Strange (by k5888200)"; print '
#include <stdio.h>


long long n;
long long e2[100],e3[100],N2,N3;
int count;

void f(long long N, int two, int three){
    if(N==0){
        count++;
        return ;
    }

    while(N%2==0) N/=2, two--;
    while(N%3==0) N/=3, three--;

    if(three>0) return ;

    int i,j;
    for(i=two;i>=0;i--) for(j=0;j<=N3;j++){
        if(N-e2[i]*e3[j]>=0) f(N-e2[i]*e3[j],i-1,j+1);
        else break;
    }
}

int main(){
    scanf("%lld",&n);

    while(n%2==0) n/=2;
    while(n%3==0) n/=3;

    int i;
    e2[0]=e3[0]=1;
    for(i=1;e2[i-1]<=n;i++) e2[i]=e2[i-1]*2; N2=i-1;
    for(i=1;e3[i-1]<=n;i++) e3[i]=e3[i-1]*3; N3=i-1;

    f(n,N2,0);
    if(n==1) count=0;
    printf("%d",count);

}


'; print "


2. Hope (by gs12065) "; print '
#include <cstdio>
#include <algorithm>

#define M_MAX 3020
#define N_MAX 110

struct state {
	bool isLine;
	int num;
} list[M_MAX*2], t;

int n, m, map[M_MAX][M_MAX], nList[M_MAX][N_MAX], nFull[M_MAX], rNum[M_MAX], gList[M_MAX][N_MAX], gFull[M_MAX], rGroup[M_MAX], minNum, selected[M_MAX];
bool chk[M_MAX][M_MAX];

int getScore(state &x){
	return x.isLine?rNum[x.num]:rGroup[x.num];
}

bool compare(state &x, state &y){
	return getScore(x) < getScore(y);
}

void process(state &x, bool recur){
	int i, d;
	bool find=0;
	if(x.isLine){
		for(i=0; i<nFull[x.num]; i++){
			//printf("_%d %d\n", x.num, nList[x.num][i]);
			if(chk[x.num][nList[x.num][i]]){
				chk[x.num][nList[x.num][i]] = 0;
				rGroup[nList[x.num][i]]--;
				if(!find) {
					selected[nList[x.num][i]] = x.num;
					d = nList[x.num][i];
					rGroup[d] = n+1;
					find = 1;
				}
			}
		}
		for(i=0; i<gFull[d]; i++)
			if(chk[gList[d][i]][d])
				chk[gList[d][i]][d] = 0;
		rNum[x.num] = n+1;
	} else {
		for(i=0; i<gFull[x.num]; i++){
			if(chk[gList[x.num][i]][x.num]){
				chk[gList[x.num][i]][x.num] = 0;
				rNum[gList[x.num][i]]--;
				if(!find) {
					selected[x.num] = gList[x.num][i];
					d = gList[x.num][i];
					rNum[d] = n+1;
					find = 1;
				}
			}
		}
		for(i=0; i<nFull[d]; i++)
			if(chk[d][nList[d][i]])
				chk[d][nList[d][i]] = 0;
		rGroup[x.num] = n+1;
	}
}

void getMin(){
	minNum = 0;

	int i;
	for(i=1; i<2*m; i++)
		if(getScore(list[i]) < getScore(list[minNum]))
			minNum = i;
}

int main(){
	scanf("%d%d", &m, &n);

	int i, j, t;
	for(i=1; i<=m; i++){
		for(j=1; j<=n; j++){
			scanf("%d", &t);
			if(!map[t][i]){
				map[t][i] = j;
				chk[t][i] = 1;
				nList[t][nFull[t]++] = i;
				gList[i][gFull[i]++] = t;
			}
		}
	}

	for(i=0; i<m; i++){
		rGroup[i+1] = gFull[i+1];
		list[i*2].isLine = 0;
		list[i*2].num = i+1;
		rNum[i+1] = nFull[i+1];
		list[i*2+1].isLine = 1;
		list[i*2+1].num = i+1;
	}

	getMin();
	while(getScore(list[minNum]) <= n){
		process(list[minNum], 0);
		getMin();
	}

	for(i=1; i<=m; i++)
		printf("%d %d\n", selected[i], map[selected[i]][i]);

	return 0;
}

'; print "


3. Bracket (by gs12117)
"; print'
#include<stdio.h>
int n;
int code[1010];
int codeb[2010];
char str[2010];
int f(int a,int b){
	if(a==b)return 1;
	int i,j=0,k=0;
	for(i=a;i<b;i++){
		j+=codeb[i];
		k+=codeb[i]*i;
	}
	if(j!=(b-a)/2)return 0;
	if(k!=j*(a+b)/2)return 0;
	for(i=a+1;i<=(a+b)/2;i++){
		if(codeb[i]){
			codeb[i]--;
			if(f(a+1,2*i-a-1)==1&&f(2*i-a,b)==1){
				str[a]='[';
				str[2*i-a-1]=']';
				codeb[i]++;
				return 1;
			}
			codeb[i]++;
		}
	}
	return 0;
}
int main(){
	int i,j;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&code[i]);
		codeb[code[i]]++;
	}
	if(f(0,2*n)==0)printf("ERR");
	printf("%s",str);
}

'; print "
À§ ÇعýÀ» ºÐ¼®ÇÏ¿© ¿­½ÉÈ÷ °øºÎÇսôÙ. ¹®Á¦ µî·ÏµÇ¸é µµÀüÇϼ¼¿ä!!"; print ''; ?>