"; print " �Ʒ� ������ ������ ��� �п� ���� ����Դϴ�.
�����ڵ� ��� ���ϵ帳�ϴ�. �����ϼ̽��ϴ�. ������ �غ����� ���ǰ��翡�� ������ �ֽñ� �ٶ��ϴ�.
"; print "
���� : o - Accepted, x - Wrong Answer, s - signal out(runtime error), t - Time Limit Exceeded


"; print "3ȸ ���� �ڴ���(Chick)!! ���

"; print "Gold Medal : ainta, august14, dijkstra, gs10087, gs12065, sujin, teram, vega4792, wclee2265, zlzmsrhak56
"; print "Silver Medal : X
"; print "Bronze Medal : pl0892029, nobe0716, commaster0, gs11059, gshs281301, ryanch1, gs12059, gs11008, gs10107, k5888200

"; $dir="/var/www/bbs/moi/3stchk/"; $pnum = 4; $files1 = scandir($dir); $number=1; $iuser = array(); $ip1 = array(); $ip2 = array(); $ip3 = array(); $ip4 = 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) { $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; 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).''; $score += 25+($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 $ip4[$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; $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 (������ ��쿡 4, 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 Odd Number(250) Dice Game(250) A Party(250) Number Card(250) Score
'.($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 perfect Solution!!


1. Odd Number (by ainta)"; print '
  1. #include <stdio.h>     // Mathmatical Solution   
  2. long long a;  
  3. int main(){  
  4.     scanf("%lld",&a);  
  5.     printf("%lld %lld\n",(a-1)*(a-1)/2+1,(a+1)*(a+1)/2-1);  
  6. }  

'; print "

2. Dice Game (by dijkstra)"; print '
  1. #include<stdio.h>  
  2. int b[1010],d[1010],p;  
  3. main()  
  4. {  
  5.     int n,m,i;  
  6.     scanf("%d%d",&n,&m);  
  7.     for(i=1;i<=n;i++)  
  8.         scanf("%d",&b[i]);    
  9.     for(p=i=1;p<n&&i<=m;i++)  
  10.     {  
  11.         scanf("%d",&d[i]);  
  12.         p+=d[i]+b[p+d[i]];  
  13.     }  
  14.     printf("%d",i-1);  
  15. }  

'; print "

3. A Part(by vega4792)"; print '
  1. #include<stdio.h>  
  2. int n, m, a, b, visit[501], g[501][501], i, j, cnt;  
  3. main()  
  4. {  
  5.     scanf("%d%d",&n,&m);  
  6.     for(i=1; i<=m; i++)  
  7.     {  
  8.         scanf("%d%d",&a,&b);  
  9.         g[a][b]=1;  
  10.         g[b][a]=1;  
  11.     }  
  12.     for(i=2; i<=n; i++)  
  13.         if(g[1][i])  
  14.         {  
  15.             visit[i]=1;  
  16.             for(j=1; j<=n; j++)  
  17.             {  
  18.                 if(j==i) continue;  
  19.                 if(g[i][j]) visit[j]=1;  
  20.             }  
  21.         }  
  22.     for(i=2; i<=n; i++)  
  23.         if(visit[i]) cnt++;  
  24.     printf("%d",cnt);  
  25. }  
  26.       

'; print "
Here is another solution 3. A Part(by nobe0716)"; print '
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <vector>  
  4. #include <queue>  
  5. using namespace std;  
  6.   
  7. //#define _TEST  
  8.   
  9. #ifdef _TEST  
  10. #include "windows.h"  
  11. #include "conio.h"  
  12. #endif //_TEST  
  13.   
  14. struct _Node  
  15. {  
  16.     int nIdx;  
  17.     int nDepth;  
  18. };  
  19.   
  20. const static int N_MAX  = 601;  
  21. int n, m;  
  22.   
  23. queue<_Node> q;  
  24. vector<int> vecMap[N_MAX];  
  25. vector<int> vecVisitor;  
  26.   
  27. int nHashInvited[N_MAX];  
  28.   
  29. int main(int argc, char **argv)  
  30. {  
  31. #ifdef _TEST  
  32.     freopen("input.txt""r", stdin);  
  33. #endif // _TEST  
  34.     int nCnt = 0;  
  35.   
  36.     scanf("%d %d", &n, &m);  
  37. #ifdef _TEST  
  38.     int t = GetTickCount();  
  39. #endif // _TEST  
  40.   
  41.     for ( int i = 0 ; i < m ; ++i )  
  42.     {  
  43.         int nFrom, nTo;  
  44.         scanf("%d %d", &nFrom, &nTo );  
  45.         vecMap[nFrom].push_back( nTo );  
  46.         vecMap[nTo].push_back( nFrom );  
  47.     }  
  48.     _Node stNode;  
  49.     stNode.nIdx = 1;  
  50.     stNode.nDepth = 0;  
  51.       
  52.     _Node stNodeTemp;  
  53.     q.push( stNode );  
  54.     while ( !q.empty() )  
  55.     {  
  56.         _Node stNodeTemp = q.front();  
  57.         q.pop();  
  58.   
  59.         nHashInvited[ stNodeTemp.nIdx ] = 1;  
  60.   
  61.         if ( stNodeTemp.nDepth >= 2 )  
  62.             continue;  
  63.   
  64.         for ( int i = 0 ; i < vecMap[ stNodeTemp.nIdx ].size() ; ++i )  
  65.         {  
  66.             _Node stNodeBranch;  
  67.             stNodeBranch.nIdx = vecMap[ stNodeTemp.nIdx ].at(i);  
  68.             stNodeBranch.nDepth = stNodeTemp.nDepth + 1;  
  69.   
  70.             if ( nHashInvited[ stNodeBranch.nIdx ] == 0 )  
  71.                 q.push( stNodeBranch );   
  72.         }  
  73.     }  
  74.       
  75.     for ( int i = 0 ; i < N_MAX ; ++i )  
  76.         if ( nHashInvited[i] == 1)  
  77.             ++nCnt;  
  78.     printf("%d\n", nCnt - 1 );  
  79.   
  80. #ifdef _TEST  
  81.     printf("\tRunTime = %d\n", GetTickCount() - t );  
  82.     getch();  
  83. #endif // _TEST  
  84.     return 0;  
  85. }  

'; print "

4. Number Card(by zlzmsrhak56)"; print '
  1. #include<stdio.h>     // using set  
  2. #include<set>  
  3. using namespace std;  
  4. int i,n,k;  
  5. int d[15];  
  6. bool check[15];  
  7. set<int> numbers;  
  8. void aa(int su,int lev)  
  9. {  
  10.     int i;  
  11.     if(lev==k){  
  12.         numbers.insert(su);  
  13.         return;  
  14.     }  
  15.     for(i=0;i<n;i++){  
  16.         if(check[i])continue;  
  17.         check[i]=true;  
  18.         if(d[i]<10)aa(su*10+d[i],lev+1);  
  19.         else aa(su*100+d[i],lev+1);  
  20.         check[i]=false;  
  21.     }  
  22. }  
  23. int main()  
  24. {  
  25.     scanf("%d%d",&n,&k);  
  26.     for(i=0;i<n;i++)scanf("%d",d+i);  
  27.     aa(0,0);  
  28.     printf("%d",numbers.size());  
  29.     return 0;  
  30. }  

'; print "
Here is another solution 4. Number Card(by august14)"; print '
  1. #include <iostream>  
  2. #include <string>  
  3. #include <set>        //using set and string  
  4. using namespace std;  
  5.   
  6. int N,K,C[11]; string NUM[11]; set<string> S;  
  7.   
  8. void go(int a, string s)  
  9. {  
  10.     if (a == K) S.insert(s);  
  11.     else{  
  12.         int i;  
  13.   
  14.         for (i=0;i<N;i++) if (!C[i]){  
  15.             C[i] = 1; go(a+1,s+NUM[i]); C[i] = 0;  
  16.         }  
  17.     }  
  18. }  
  19.   
  20. int main()  
  21. {  
  22.     int i;  
  23.   
  24.     cin >> N >> K;  
  25.     for (i=0;i<N;i++) cin >> NUM[i];  
  26.   
  27.     go(0,"");  
  28.   
  29.     cout << S.size();  
  30.   
  31.     return 0;  
  32. }  


'; print "�� �ع����� �м��Ͽ� ������ �����սô�. �Խõ� �ַ���� ������ ������ Discuss Board�� �ۼ��� �ֽø� ����� �帳�ϴ�."; print ''; ?>