´ÙÀ½ ¸ðÀÇ°í»çµµ ¸¹Àº Âü°¡ ¹Ù¶ø´Ï´Ù.
"; 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 - Âü°¡ÀÚÀÇ 25%À̳»


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

: gs12065, gs12117

"; print "



Gold Medal List!! (cutline 1000pts)


: gs12117, gs12065

"; print "



Silver Medal List (cutline 707pts)

: ainta, tncks0121, gs12120

"; print "



Bronze Medal List (cutline 447pts)


: gs13003, gs11028, pl0892029, gs12016, gs11103, gs12013, ajou709


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

"; $dir="/var/www/bbs/moi/16th/"; $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 = 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 += 12.9411+($j*0.001); else if($j==2) $score += 24+($j*0.001); else if($j==3) $score += 12.381+($j*0.001); else if($j==4) $score += 28+($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 Long Jump (220) Ball Game (240) Make Polygon (260) Microbiology Laps (280)
'.($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. Long Jump Competition (by ainta)"; print '
#include<stdio.h>
int n,w[20001],i,IT[70000],l,R[20001],B,E,M,S;
int find(int p){
	B=l,E=l+p,S=0;
	while(B<=E){
		if(B&1)S+=IT[B];
		if(!(E&1))S+=IT[E];
		B=(B+1)/2,E=(E-1)/2;
	}
	return S;
}
int main()
{
	int b,e,m,t;
	scanf("%d",&n);
	l=1;
	while(l<n)l*=2;
	for(i=0;i<n;i++){
		scanf("%d",&w[i]);
		t=i+l;while(t)IT[t]++,t/=2;}
	for(i=n-1;i>=0;i--){
		b=0,e=n-1;
		while(b<=e){
			m=(b+e+1)/2;
			if(IT[m+l]==0){
				if(find(m)>=w[i])e=m-1;
				else b=m+1;}
			else{
				t=find(m);
				if(t==w[i])break;
				if(t<w[i])b=m+1;
				else e=m-1;
			}
		}
		R[m]=i;
		t=m+l;while(t)IT[t]--,t/=2;
	}
	for(i=0;i<n;i++)printf("%d\n",R[i]+1);
}

'; print "


Here is another solution 1. Long Jump Competition (by tncks0121)"; print '
#include<stdio.h>
#include<string.h>

#define N_ 20000
#define bl 145

int N;
int bucket[bl+1][bl*2+1], bn;
int cnt[bl+1];

int tmp[N_+1], tn;
int chk;
void replace(){
	int i, j; tn = 0;
	for(i=1; i<=bl; i++){
		for(j=1; j<=cnt[i]; j++) tmp[++tn] = bucket[i][j];
		cnt[i] = 0;
	}
	j = 1; bn = 1;
	for(i=1; i<=tn; i++){
		bucket[bn][++cnt[bn]] = tmp[i];
		if(cnt[bn] == bl) j++;
	}
}

void insert(int rank, int dat){
	int bx, by = rank, i;
	for(bx=1; bx<=bn; bx++){
		if(by > cnt[bx]) by -= cnt[bx];
		else break;
	} if(bx > bn) bx = bn, by = cnt[bn]+1;
	for(i=++cnt[bx]; i>by; i--) bucket[bx][i] = bucket[bx][i-1];
	bucket[bx][by] = dat;
}

int main(){
	int i, j;
	scanf("%d",&N); bn = 1;
	for(i=1; i<=N; i++){
		int d; scanf("%d",&d); ++chk;
		if(i == 1) bucket[1][1] = i, cnt[1] = 1;
		else{
			insert(d,i); 
			if(chk == bl) replace(), chk=0;
		}
	}

	for(i=1; i<=bl; i++) for(j=1; j<=cnt[i]; j++){
		printf("%d\n",bucket[i][j]);
	}
	return 0;
}

'; print "


Here is extra solution 1. Long Jump Competition (by admin)"; print '
#include<stdio.h>
#include<list>
using namespace std;

int main(void)
{
    int n, rank=0, i;
    list<int> L;
    list<int>::iterator iter;
    scanf("%d", &n);
    for( i = 1, iter = L.begin() ; i <= n ; i++ )
    {
        int prev = rank;
        scanf("%d", &rank);
        prev = rank-prev;
        if( prev < rank ) advance(iter, prev-1);
        else iter=L.begin(), advance(iter, rank-1);
        L.insert(iter, i);
    }
    for( iter = L.begin() ; iter != L.end() ; iter++ )
        printf("%d\n", *iter);
    return 0;
}

'; print "


2. Ball Game(by pl0892029) "; print '
#include <cstdio>

int main()
{
	int n;
	scanf("%d",&n);
	printf("%lld",(long long)((n+1)*(n+1)/2-1)%1000000007);
}

'; print "


3. Make Polygon (by ainta)
"; print'
#include<stdio.h>
long long A[10],B[10],K=1000000000,R,T,X,a,b,c,d,e,f,g,h,t1,t2,t3,t4,x,y;
int i,n;
void PP(int N){
	X=1,a=1,b=0,c=0,d=1,e=4,f=1,g=4,h=0;
	while(N){
		if(N&X){
			t1=a*e+b*g,t2=a*f+b*h,t3=c*e+d*g,t4=c*f+d*h;
			t1%=K,t2%=K,t3%=K,t4%=K;a=t1,b=t2,c=t3,d=t4;N-=X;}
		t1=e*e+f*g,t2=e*f+f*h,t3=g*e+h*g,t4=g*f+h*h;
		t1%=K,t2%=K,t3%=K,t4%=K;e=t1,f=t2,g=t3,h=t4;X*=2;}}
int main()
{
	A[1]=B[2]=1,B[3]=7,A[2]=4,A[3]=14,A[4]=68,B[4]=34;
	scanf("%d",&n);
	if(n<=6){
		for(i=5;i<=n;i++){
			A[i]=(A[i-1]+A[i-2])*4;
			B[i]=A[i]/2;
			A[i]%=K,B[i]%=K;}
		printf("%lld\n",(A[n-1]+B[n-1]*2+2*(A[n-2]+2*B[n-2]))%K);}
	else{
		R=68,T=14;
		PP(n-5);
		x=(R*a+T*c)%K;
		PP(n-6);
		y=(R*a+T*c)%K;
		printf("%lld\n",(x*2+y*4)%K);
	}
}

'; print "

Here is another Solution 3. Make Polygon (by ainta)
"; print'
#include <cstdio>

#define MOD 1000000000
#define ll long long

int n;
ll first[6]={1,0,0,1,1,0}, res[6], recur[6][6]={
	0,1,0,1,0,1,
	0,1,1,1,0,1,
	0,1,0,1,0,1,
	1,2,0,2,1,2,
	0,1,0,1,0,1,
	0,1,1,1,0,1
};

void multiply(ll f[6][6], ll s[6][6], ll r[6][6]){
	int i, j, k;
	for(i=0; i<6; i++){
		for(j=0; j<6; j++){
			r[i][j] = 0;
			for(k=0; k<6; k++){
				r[i][j] += f[i][k]*s[k][j];
				if(r[i][j] >= MOD) r[i][j] %= MOD;
			}
		}
	}
}

void copy(ll f[6][6], ll s[6][6]){
	int i, j;
	for(i=0; i<6; i++){
		for(j=0; j<6; j++){
			s[i][j] = f[i][j];
		}
	}
}

void solve(){
	int t=1;
	while((t<<1) <= n) t = t<<1;

	ll now[6][6]={
		1,0,0,0,0,0,
		0,1,0,0,0,0,
		0,0,1,0,0,0,
		0,0,0,1,0,0,
		0,0,0,0,1,0,
		0,0,0,0,0,1
	}, tmp[6][6];

	while(t){
		multiply(now, now, tmp);
		copy(tmp, now);
		if(n&t){
			multiply(now, recur, tmp);
			copy(tmp, now);
		}
		t = t>>1;
	}

	int i, j;
	for(i=0; i<6; i++){
		res[i] = 0;
		for(j=0; j<6; j++){
			res[i] += first[j]*now[i][j];
			if(res[i] >= MOD) res[i] %= MOD;
		}
	}
}

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

	solve();

	printf("%lld\n", (res[1]-res[2]+res[5]+MOD)%MOD);
	
	return 0;
}

'; print "


4. Microbiology Labs (by gs12117)
"; print'
#include<stdio.h>
#include<queue>
std::priority_queue<int> a;
int m[300100][2];
int tmp[300100][2];
int left[300100],p;
int n;
void sort(int start,int end){
	if(end<start+2)return;
	int mid=(start+end)/2;
	sort(start,mid);
	sort(mid,end);
	int i,j,k;
	i=start;
	j=mid;
	k=start;
	for(;i<mid&&j<end;k++){
		if(m[i][1]>m[j][1]){
			tmp[k][0]=m[i][0];
			tmp[k][1]=m[i][1];
			i++;
		}
		else{
			tmp[k][0]=m[j][0];
			tmp[k][1]=m[j][1];
			j++;
		}
	}
	for(;i<mid;i++){
		tmp[k][0]=m[i][0];
		tmp[k][1]=m[i][1];
		k++;
	}
	for(i=start;i<k;i++){
		m[i][0]=tmp[i][0];
		m[i][1]=tmp[i][1];
	}
}
int main(){
	scanf("%d",&n);
	int i,ans,siz;
	long long int total;
	for(i=0;i<n;i++){
		scanf("%d%d",&m[i][0],&m[i][1]);
	}
	sort(0,n);
	for(total=siz=ans=i=0;i<n;i++){
		a.push(m[i][0]);
		siz++;
		total+=m[i][0];
		while(p&&total<=(long long int)siz*m[i][1]){
			p--;
			a.push(left[p]);
			siz++;
			total+=left[p];
		}
		if(total>(long long int)siz*m[i][1]){
			left[p]=a.top();
			p++;
			total-=a.top();
			a.pop();
			siz--;
		}
		if(siz>ans){
			ans=siz;
		}
	}
	printf("%d",ans);
}

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