������ �غ����� ���ǰ��翡�� ������ �ֽñ� �ٶ��ϴ�.
"; 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 '
  1. #include<stdio.h>  
  2.   
  3. int m[7][7],i,j,k,l,cnt;  
  4.   
  5. main()  
  6. {  
  7.     for(i=1;i<=5;i++)  
  8.         for(j=1;j<=5;j++)  
  9.             scanf("%d",&m[i][j]);  
  10.   
  11.     for(l=1;l<=25;l++)  
  12.     {  
  13.         scanf("%d",&k);  
  14.         for(i=1;i<=5;i++)  
  15.             for(j=1;j<=5;j++)  
  16.                 if (m[i][j]==k)  
  17.                 {  
  18.                     m[i][j]=0;  
  19.                     m[i][0]++;  
  20.                     m[0][j]++;  
  21.                     if (i==j)  
  22.                     m[0][0]++;  
  23.                     if (i+j==6)  
  24.                     m[0][6]++;  
  25.                 }  
  26.             cnt=0;  
  27.             for(i=0;i<=6;i++)  
  28.                 if(m[0][i]==5)   
  29.                     cnt++;  
  30.             for(i=1;i<=5;i++)              
  31.                 if(m[i][0]==5)   
  32.                     cnt++;  
  33.   
  34.         if(cnt>=3)   
  35.         {  
  36.             printf("%d\n",l);  
  37.             break;  
  38.         }  
  39.     }  
  40. }  

'; print "


2. Number Sum (by gs11028) "; print '
  1. #include <stdio.h>  
  2. int n;  
  3. int a[15];  
  4. int b[15];  
  5. bool flag=0;  
  6. bool chk[15];  
  7. void proc(int k, int ans)  
  8. {  
  9.     if(k==n)  
  10.     {  
  11.         if(ans == 0)  
  12.             flag = 1;  
  13.         return;  
  14.     }  
  15.     int i;  
  16.     for(i=1;i<=n;i++)  
  17.     {  
  18.         if(chk[i] == 1)  
  19.             continue;  
  20.         if(ans < i*a[k])  
  21.             continue;  
  22.         chk[i] = 1;  
  23.         b[k] = i;  
  24.         proc(k+1,ans-i*a[k]);  
  25.         if(flag == 1)  
  26.             break;  
  27.         chk[i] = 0;  
  28.     }  
  29.     return;  
  30. }  
  31. int main()  
  32. {  
  33.     int f,tmp[15][15]={0},i,j;  
  34.     scanf("%d %d",&n,&f);  
  35.     tmp[0][0] = 1;  
  36.     for(i=1;i<n;i++)  
  37.     {  
  38.         for(j=0;j<=i;j++)  
  39.         {  
  40.             if(j==0)  
  41.                 tmp[i][j] = 1;  
  42.             else  
  43.                 tmp[i][j] = tmp[i-1][j-1] + tmp[i-1][j];  
  44.         }  
  45.     }  
  46.     for(i=0;i<n;i++)  
  47.         a[i] = tmp[n-1][i];  
  48.     proc(0,f);  
  49.     for(i=0;i<n;i++)  
  50.     {  
  51.         printf("%d ",b[i]);  
  52.     }  
  53.     return 0;  
  54. }  

'; print "


Here is another solution (by cubelover) "; print '
  1. #include<algorithm>  
  2. #include<cstdio>  
  3.   
  4. using namespace std;  
  5.   
  6. main()  
  7. {  
  8.     int i,j,n,k;  
  9.     int d[10][10];  
  10.     scanf("%d%d",&n,&k);  
  11.     for(i=0;i<n;i++)d[0][i]=i+1;  
  12.     do  
  13.     {  
  14.         for(i=1;i<n;i++)  
  15.         {  
  16.             for(j=0;j<n-i;j++)  
  17.                 d[i][j]=d[i-1][j]+d[i-1][j+1];  
  18.         }  
  19.         if(d[n-1][0]==k)  
  20.             break;  
  21.     }while(next_permutation(d[0],d[0]+n));  
  22.     for(i=0;i<n;i++)printf("%d ",d[0][i]);  
  23. }  

'; print "


3. Harvest (by gs11008)
"; print'
  1. #include<stdio.h>  
  2. int n,x[2000],q[2000][2000];  
  3. int max(int p,int q){  
  4.     return p>q?p:q;  
  5. }  
  6. int f(int a,int b){  
  7.     if(q[a][b]);  
  8.     else if(a==b){  
  9.         q[a][b]=x[a]*n;  
  10.     }  
  11.     else q[a][b]=max( f(a+1,b)+x[a]*(n-b+a), f(a,b-1)+x[b]*(n-b+a));  
  12.     return q[a][b];  
  13. }  
  14. int main(){  
  15.     int i;  
  16.     scanf("%d",&n);  
  17.     for(i=0;i<n;i++){  
  18.         scanf("%d",&x[i]);  
  19.     }  
  20.     printf("%d",f(0,n-1));  
  21. }  

'; print "


Here is another solution (by ainta) "; print '
  1. #include<stdio.h>  
  2. int m(int a,int b){if(a>b)return a;return b;}  
  3. int w[2002],i,j,n,D[2001][2001],s[2002];  
  4. int main(){  
  5.     scanf("%d",&n);  
  6.     for(i=1;i<=n;i++){  
  7.         scanf("%d",&w[i]);  
  8.         s[i]=s[i-1]+w[i];}  
  9.     for(i=1;i<=n;i++)D[i][i]=w[i];  
  10.     for(i=1;i<n;i++){  
  11.         for(j=1;j<=n-i;j++){  
  12.             D[j][j+i]=m(D[j+1][j+i],D[j][j+i-1])+s[j+i]-s[j-1];}}  
  13.     printf("%d\n",D[1][n]);  
  14. }  

'; print "


4. Cowboy (by admin)
"; print'
  1. #include <stdio.h>  
  2. #define MN 14  
  3. #define _2N 8192  
  4. #define max(a,b) (((a)>(b))?(a):(b))  
  5. int n;  
  6. double c[MN][MN][_2N], p[MN];  
  7. bool ch[MN][MN][_2N];  
  8. void input()  
  9. {  
  10.     int i, j;  
  11.   
  12.     scanf("%d", &n);  
  13.     for (i = 1; i <= n; i++) {  
  14.         scanf("%d", &j);  
  15.         p[i] = (double)j/100;  
  16.     }  
  17. }  
  18. double f(int k, int i, int S)  
  19. {  
  20.     if (!(S&(1<<(k-1)))) return 0;  
  21.     if (!ch[k][i][S]) {  
  22.         int a, b, na, nb;  
  23.         char w[MN], wc;  
  24.         double G, m, re;  
  25.   
  26.         for (b = i+1;; b++) {  
  27.             if (b > n) b = 1;  
  28.             if (S&(1<<(b-1))) {  
  29.                 nb = b;  
  30.                 break;  
  31.             }  
  32.         }  
  33.         G = 1;  
  34.         for (a = i;;) {  
  35.             if (S&(1<<(a-1))) {  
  36.                 for (b = nb+1;;b++) {  
  37.                     if (b > n) b = 1;  
  38.                     if (S&(1<<(b-1))) {  
  39.                         na = nb; nb = b;  
  40.                         break;  
  41.                     }  
  42.                 }  
  43.                 m = 0; wc = 0;  
  44.                 for (b = a+1;;b++) {  
  45.                     if (b > n) b = 1;  
  46.                     if (b == a) break;  
  47.                     if (S&(1<<(b-1))) {  
  48.                         if (b != na) {  
  49.                             re = f(a,na,S-(1<<(b-1)));  
  50.                             if (m == re) w[++wc] = b;  
  51.                             else if (m < re) {  
  52.                                 m = re;  
  53.                                 wc = 1; w[wc] = b;  
  54.                             }  
  55.                         }  
  56.                         else {  
  57.                             re = f(a,nb,S-(1<<(b-1)));  
  58.                             if (m == re) w[++wc] = b;  
  59.                             else if (m < re) {  
  60.                                 m = re;  
  61.                                 wc = 1; w[wc] = b;  
  62.                             }  
  63.                         }  
  64.                     }  
  65.                 }  
  66.                 for (int j = 1; j <= wc; j++) {  
  67.                     b = w[j];  
  68.                     if (S&(1<<(b-1))) {  
  69.                         if (b != na) {  
  70.                             re = f(a,na,S-(1<<(b-1)));  
  71.                             if (m == re)  
  72.                                 c[k][i][S] += G*p[a]*f(k,na,S-(1<<(b-1)))/wc;  
  73.                         }  
  74.                         else {  
  75.                             re = f(a,nb,S-(1<<(b-1)));  
  76.                             if (m == re)  
  77.                                 c[k][i][S] += G*p[a]*f(k,nb,S-(1<<(b-1)))/wc;  
  78.                         }  
  79.                     }  
  80.                 }  
  81.                 G *= 1-p[a];  
  82.             }             
  83.             if (++a > n) a = 1;  
  84.             if (a == i) break;  
  85.         }  
  86.         if (1-G == 0) c[k][i][S] = 0;  
  87.         else c[k][i][S] /= 1-G;  
  88.         ch[k][i][S] = 1;  
  89.     }  
  90.     return c[k][i][S];  
  91. }  
  92. void process()  
  93. {  
  94.     int i;  
  95.   
  96.     for (i = 1; i <= n; i++)  
  97.         c[i][i][1<<(i-1)] = ch[i][i][1<<(i-1)] = 1;  
  98.     for (i = 1; i <= n; i++)  
  99.         printf("%.2lf ", f(i,1,(1<<n)-1)*100);  
  100. }  
  101. int main()  
  102. {  
  103.     input();  
  104.     process();  
  105.     fcloseall();  
  106.     return 0;  
  107. }  

'; print "


5. Make Permutation (by dijkstra)
"; print'
  1. #include <stdio.h>  
  2. #define MN 100001  
  3.   
  4. int n, a, b;  
  5. int d[MN], t[MN];  
  6. int main()  
  7. {  
  8.     int i, p, k;  
  9.   
  10.     scanf("%d%d%d", &n, &a, &b);  
  11.     if (a+b-1 <= n && n <= (long long)a*b) {  
  12.         for (i = 1; i <= n; i++) d[i] = n+1-i;  
  13.         k = p = n;  
  14.         while (k-(a-1) > b) {  
  15.             k -= a-1; p -= a;  
  16.             for (i = 1; i <= a; i++) t[p+i] = d[p+a+1-i];  
  17.             for (i = 1; i <= a; i++) d[p+i] = t[p+i];  
  18.         }  
  19.         a = k-b+1; p -= a;  
  20.         for (i = 1; i <= a; i++) t[p+i] = d[p+a+1-i];  
  21.         for (i = 1; i <= a; i++) d[p+i] = t[p+i];  
  22.         for (i = 1; i <= n; i++)  
  23.             printf("%d ", d[i]);  
  24.     }  
  25.     else  
  26.         printf("-1");  
  27.     return 0;  
  28. }  

'; print "
�� �ع��� �м��Ͽ� ������ �����սô�. ���� ��ϵǸ� �����ϼ���!!"; print ''; ?> */