´ÙÀ½¿¡ ÁغñÁßÀÎ ¸ðÀÇ°í»ç¿¡µµ Âü°¡ÇØ Áֽñ⠹ٶø´Ï´Ù.
"; print "
¹ü·Ê : o - Accepted, x - Wrong Answer, s - signal out(runtime error), t - Time Limit Exceeded


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

: gs12117

"; print "



Gold Medal List!! (over 983pts)


: gs12117, dijkstra

"; print "



Silver Medal List (over 720pts)

: ainta, gs12120, gs12065, gs12006

"; print "



Bronze Medal List (over 241pts)


: gs13068, gs11028, gs11008, admin


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

"; $dir="/var/www/bbs/moi/17th/"; $pnum = 5; $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 = 18600-(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 <= 18600) $iuser[$number] = "".$iuser[$number]."(".$hh."h".$mm."m)"; else $iuser[$number] = "".$iuser[$number]."(Done)"; 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 += 16.67+($j*0.001); else if($j==3) $score += 12.5+($j*0.001); else if($j==4) $score += 25+($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 ""; } print "
Rank user Wolf&Sheep (250) Hard Disk (250) Wide LCD_TV (250) The War (250)
'.($rank[$i]+1).''.$iuser[$i].''.$ip1[$i].''.$ip2[$i].''.$ip3[$i].''.$ip4[$i].''.(floor($isc[$i])).'

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


Here is some User's perfact Solution!!


1. Bingo (by vega4792)"; print '
#include<stdio.h>

int m[7][7],i,j,k,l,cnt;

main()
{
	for(i=1;i<=5;i++)
		for(j=1;j<=5;j++)
			scanf("%d",&m[i][j]);

	for(l=1;l<=25;l++)
	{
		scanf("%d",&k);
		for(i=1;i<=5;i++)
			for(j=1;j<=5;j++)
				if (m[i][j]==k)
				{
					m[i][j]=0;
					m[i][0]++;
					m[0][j]++;
					if (i==j)
					m[0][0]++;
					if (i+j==6)
					m[0][6]++;
				}
			cnt=0;
			for(i=0;i<=6;i++)
				if(m[0][i]==5) 
					cnt++;
			for(i=1;i<=5;i++)            
				if(m[i][0]==5) 
					cnt++;

		if(cnt>=3) 
		{
			printf("%d\n",l);
			break;
		}
	}
}


'; print "


2. Number Sum (by gs11028) "; print '
#include <stdio.h>
int n;
int a[15];
int b[15];
bool flag=0;
bool chk[15];
void proc(int k, int ans)
{
	if(k==n)
	{
		if(ans == 0)
			flag = 1;
		return;
	}
	int i;
	for(i=1;i<=n;i++)
	{
		if(chk[i] == 1)
			continue;
		if(ans < i*a[k])
			continue;
		chk[i] = 1;
		b[k] = i;
		proc(k+1,ans-i*a[k]);
		if(flag == 1)
			break;
		chk[i] = 0;
	}
	return;
}
int main()
{
	int f,tmp[15][15]={0},i,j;
	scanf("%d %d",&n,&f);
	tmp[0][0] = 1;
	for(i=1;i<n;i++)
	{
		for(j=0;j<=i;j++)
		{
			if(j==0)
				tmp[i][j] = 1;
			else
				tmp[i][j] = tmp[i-1][j-1] + tmp[i-1][j];
		}
	}
	for(i=0;i<n;i++)
		a[i] = tmp[n-1][i];
	proc(0,f);
	for(i=0;i<n;i++)
	{
		printf("%d ",b[i]);
	}
	return 0;
}

'; print "


Here is another solution (by cubelover) "; print '
#include<algorithm>
#include<cstdio>

using namespace std;

main()
{
	int i,j,n,k;
	int d[10][10];
	scanf("%d%d",&n,&k);
	for(i=0;i<n;i++)d[0][i]=i+1;
	do
	{
		for(i=1;i<n;i++)
		{
			for(j=0;j<n-i;j++)
				d[i][j]=d[i-1][j]+d[i-1][j+1];
		}
		if(d[n-1][0]==k)
			break;
	}while(next_permutation(d[0],d[0]+n));
	for(i=0;i<n;i++)printf("%d ",d[0][i]);
}

'; print "


3. Harvest (by gs11008)
"; print'
#include<stdio.h>
int n,x[2000],q[2000][2000];
int max(int p,int q){
	return p>q?p:q;
}
int f(int a,int b){
	if(q[a][b]);
	else if(a==b){
		q[a][b]=x[a]*n;
	}
	else q[a][b]=max( f(a+1,b)+x[a]*(n-b+a), f(a,b-1)+x[b]*(n-b+a));
	return q[a][b];
}
int main(){
	int i;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&x[i]);
	}
	printf("%d",f(0,n-1));
}

'; print "


Here is another solution (by ainta) "; print '
#include<stdio.h>
int m(int a,int b){if(a>b)return a;return b;}
int w[2002],i,j,n,D[2001][2001],s[2002];
int main(){
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d",&w[i]);
		s[i]=s[i-1]+w[i];}
	for(i=1;i<=n;i++)D[i][i]=w[i];
	for(i=1;i<n;i++){
		for(j=1;j<=n-i;j++){
			D[j][j+i]=m(D[j+1][j+i],D[j][j+i-1])+s[j+i]-s[j-1];}}
	printf("%d\n",D[1][n]);
}

'; print "


4. Cowboy (by admin)
"; print'
#include <stdio.h>
#define MN 14
#define _2N 8192
#define max(a,b) (((a)>(b))?(a):(b))
int n;
double c[MN][MN][_2N], p[MN];
bool ch[MN][MN][_2N];
void input()
{
	int i, j;

	scanf("%d", &n);
	for (i = 1; i <= n; i++) {
		scanf("%d", &j);
		p[i] = (double)j/100;
	}
}
double f(int k, int i, int S)
{
	if (!(S&(1<<(k-1)))) return 0;
	if (!ch[k][i][S]) {
		int a, b, na, nb;
		char w[MN], wc;
		double G, m, re;

		for (b = i+1;; b++) {
			if (b > n) b = 1;
			if (S&(1<<(b-1))) {
				nb = b;
				break;
			}
		}
		G = 1;
		for (a = i;;) {
			if (S&(1<<(a-1))) {
				for (b = nb+1;;b++) {
					if (b > n) b = 1;
					if (S&(1<<(b-1))) {
						na = nb; nb = b;
						break;
					}
				}
				m = 0; wc = 0;
				for (b = a+1;;b++) {
					if (b > n) b = 1;
					if (b == a) break;
					if (S&(1<<(b-1))) {
						if (b != na) {
							re = f(a,na,S-(1<<(b-1)));
							if (m == re) w[++wc] = b;
							else if (m < re) {
								m = re;
								wc = 1; w[wc] = b;
							}
						}
						else {
							re = f(a,nb,S-(1<<(b-1)));
							if (m == re) w[++wc] = b;
							else if (m < re) {
								m = re;
								wc = 1; w[wc] = b;
							}
						}
					}
				}
				for (int j = 1; j <= wc; j++) {
					b = w[j];
					if (S&(1<<(b-1))) {
						if (b != na) {
							re = f(a,na,S-(1<<(b-1)));
							if (m == re)
								c[k][i][S] += G*p[a]*f(k,na,S-(1<<(b-1)))/wc;
						}
						else {
							re = f(a,nb,S-(1<<(b-1)));
							if (m == re)
								c[k][i][S] += G*p[a]*f(k,nb,S-(1<<(b-1)))/wc;
						}
					}
				}
				G *= 1-p[a];
			}			
			if (++a > n) a = 1;
			if (a == i) break;
		}
		if (1-G == 0) c[k][i][S] = 0;
		else c[k][i][S] /= 1-G;
		ch[k][i][S] = 1;
	}
	return c[k][i][S];
}
void process()
{
	int i;

	for (i = 1; i <= n; i++)
		c[i][i][1<<(i-1)] = ch[i][i][1<<(i-1)] = 1;
	for (i = 1; i <= n; i++)
		printf("%.2lf ", f(i,1,(1<<n)-1)*100);
}
int main()
{
	input();
	process();
	fcloseall();
	return 0;
}

'; print "


5. Make Permutation (by dijkstra)
"; print'
#include <stdio.h>
#define MN 100001

int n, a, b;
int d[MN], t[MN];
int main()
{
	int i, p, k;

	scanf("%d%d%d", &n, &a, &b);
	if (a+b-1 <= n && n <= (long long)a*b) {
		for (i = 1; i <= n; i++) d[i] = n+1-i;
		k = p = n;
		while (k-(a-1) > b) {
			k -= a-1; p -= a;
			for (i = 1; i <= a; i++) t[p+i] = d[p+a+1-i];
			for (i = 1; i <= a; i++) d[p+i] = t[p+i];
		}
		a = k-b+1; p -= a;
		for (i = 1; i <= a; i++) t[p+i] = d[p+a+1-i];
		for (i = 1; i <= a; i++) d[p+i] = t[p+i];
		for (i = 1; i <= n; i++)
			printf("%d ", d[i]);
	}
	else
		printf("-1");
	return 0;
}

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