������ �غ����� ���ǰ��翡�� ������ �ֽñ� �ٶ��ϴ�.
";
print "
���� : o - Accepted, x - Wrong Answer, s - signal out(runtime error), t - Time Limit Exceeded
";
print "
Gold Medal - �� ���̶� ������ �������� 10%, Silver Medal - �������� 20%, Bronze Medal - �������� 30%
";
print "[ Winner!! ] (814pts)
: gs12117
";
print "
Gold Medal List!! (over 698pts)
: gs12117, ainta, railgun, gs11048
";
print "
Silver Medal List (over 457pts)
: tncks0121, ryanchl, pl0892029, ajou991, ssw1591, gs12006, gs12109, takuma
";
print "
Bronze Medal List (over 230pts)
: kk1401, gs11008, gs12065, opera1114, gs11103, gshs291221, gshs291422, gs12059, issac, nobe0716, pkizone
";
print "��ü ����ǥ
";
$dir="/var/www/bbs/moi/13th/";
$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($ttt-(time()-$ftime))%60;
if(time()-$ftime <= 15000) $iuser[$number] = "".$iuser[$number]."(".$hh."h".$mm."m)";
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 += 4+($j*0.0001);
else if($j==2) $score += 11.5+($j*0.001);
else if($j==3) $score += 13.5+($j*0.001);
else if($j==4) $score += 30+($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 (������ ��쿡 5, 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
|
KKOOII (200)
|
CGF (230)
|
Nmarket (270)
|
Nails (300)
|
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 perfact Solution!!
1. Mod (by gs11048)";
print '- #include<stdio.h>
- long long N;
- long long cnt;
- int main()
- {
- long long i;
- scanf("%lld",&N);
-
- for(i=1 ; i<=N-1 ; i++)
- {
- cnt+=i*(N+1);
- }
- printf("%lld",cnt);
- return 0;
- }
#include<stdio.h>
long long N; // by gs11048
long long cnt;
int main()
{
long long i;
scanf("%lld",&N);
for(i=1 ; i<=N-1 ; i++)
{
cnt+=i*(N+1);
}
printf("%lld",cnt);
return 0;
}
';
print "
Here is another solution (by by mufflin) ";
print '- #include <stdio.h>
-
- int main(){
- long long int n;
- scanf("%lld",&n);
- printf("%lld",n*(n-1)*(n+1)/2);
- return 0;
- }
#include <stdio.h>
int main(){ // by mufflin
long long int n;
scanf("%lld",&n);
printf("%lld",n*(n-1)*(n+1)/2);
return 0;
}
';
print "
2. Tree count (by k5888200) ";
print '- #include <stdio.h>
- #define MIN(x,y) ((x)<(y)?(x):(y)) //by k5888200
- #define MOD 9901
-
- int n,m;
- int dy[101][201];
-
- int main(){
-
-
- int i,j,k,l;
- int N;
-
- scanf("%d%d",&n,&m);
-
- dy[1][1]=1;
- for(i=2;i<=m;i++){
- for(j=2*i-1;j<=n;j++){
- for(k=1;k<=j-2;k++){
- for(l=1;l<i-1;l++){
- dy[i][j]=(dy[i][j]+dy[i-1][k]*dy[l][j-1-k]*2)%MOD;
- }
- dy[i][j]+=dy[i-1][k]*dy[l][j-1-k];
- }
- }
- }
- printf("%d",dy[m][n]);
-
-
- }
#include <stdio.h>
#define MIN(x,y) ((x)<(y)?(x):(y)) //by k5888200
#define MOD 9901
int n,m;
int dy[101][201];
int main(){
int i,j,k,l;
int N;
scanf("%d%d",&n,&m);
dy[1][1]=1;
for(i=2;i<=m;i++){
for(j=2*i-1;j<=n;j++){
for(k=1;k<=j-2;k++){
for(l=1;l<i-1;l++){
dy[i][j]=(dy[i][j]+dy[i-1][k]*dy[l][j-1-k]*2)%MOD;
}
dy[i][j]+=dy[i-1][k]*dy[l][j-1-k];
}
}
}
printf("%d",dy[m][n]);
}
';
print "
Here is another solution (by gs11028) ";
print '- #include <stdio.h>
- int b[205][105];
-
- int main()
- {
- int i,j,k,n,m;
- scanf("%d %d",&n,&m);
- for(j=0;j<=m;j++)
- {
- b[0][j] = 1;
- b[1][j] = 1;
- }
- b[1][0] = 0;
- for(i=2;i<=n;i++)
- {
- for(j=0;j<=m;j++)
- {
- for(k=2;k<i;k++)
- {
- b[i][j] += b[i-k][j-1]*b[k-1][j-1]%9901;
- }
- b[i][j]%=9901;
- }
- }
- printf("%d\n",b[n][m]-b[n][m-1]);
- }
#include <stdio.h>
int b[205][105]; //gs11028
int main()
{
int i,j,k,n,m;
scanf("%d %d",&n,&m);
for(j=0;j<=m;j++)
{
b[0][j] = 1;
b[1][j] = 1;
}
b[1][0] = 0;
for(i=2;i<=n;i++)
{
for(j=0;j<=m;j++)
{
for(k=2;k<i;k++)
{
b[i][j] += b[i-k][j-1]*b[k-1][j-1]%9901;
}
b[i][j]%=9901;
}
}
printf("%d\n",b[n][m]-b[n][m-1]);
}
';
print "
3. Password (by ainta)
";
print'
- #include<stdio.h> // ainta
- #include<string.h>
- bool p[1000001];
- int q[200001],c,i,j,K,n,m,ta[110],mod;
- char a[110];
- int main(){
- scanf("%s",a);
- scanf("%d",&K);
- n=strlen(a);
- q[c++]=2;
- for(i=3;i<=K;i+=2){
- if(!p[i])q[c++]=i;
- for(j=i;j<=K;j+=i*2)p[j]=1;}
- for(i=0;i<c;i++){
- for(j=0;j<n;j++)ta[j]=a[j]-0;
- j=mod=0;
- while(j<n){
- mod=mod*10+ta[j];
- if(mod>=q[i])mod%=q[i];j++;}
- if(mod==0){printf("BAD %d\n",q[i]);break;}}
- if(i==c)printf("GOOD\n");
- }
#include<stdio.h> // ainta
#include<string.h>
bool p[1000001];
int q[200001],c,i,j,K,n,m,ta[110],mod;
char a[110];
int main(){
scanf("%s",a);
scanf("%d",&K);
n=strlen(a);
q[c++]=2;
for(i=3;i<=K;i+=2){
if(!p[i])q[c++]=i;
for(j=i;j<=K;j+=i*2)p[j]=1;}
for(i=0;i<c;i++){
for(j=0;j<n;j++)ta[j]=a[j]-0;
j=mod=0;
while(j<n){
mod=mod*10+ta[j];
if(mod>=q[i])mod%=q[i];j++;}
if(mod==0){printf("BAD %d\n",q[i]);break;}}
if(i==c)printf("GOOD\n");
}
';
print "
Here is another solution (by gs12117) ";
print '- #include<stdio.h> // gs12117
- #include<string.h>
- int pwd[110];
- int c[210];
- int pwdlen;
- int f(int mod){
- int i,left=0;
- for(i=0;i<pwdlen;i++){
- left*=10;
- left+=pwd[i];
- left%=mod;
- }
- return left;
- }
- int main(){
- int n,i,j;
- char p[110];
- scanf("%s%d",p,&n);
- pwdlen=strlen(p);
- for(i=0;i<pwdlen;i++){
- pwd[i]=p[i]-0;
- }
- for(i=2;i<=n&&i<8;i++){
- if(f(i)==0){
- printf("BAD %d",i);
- return 0;
- }
- }
- for(i=0;i<210;i+=3)c[i]=1;
- for(i=0;i<210;i+=5)c[i]=1;
- for(i=0;i<210;i+=7)c[i]=1;
- for(i=11;i<=n;i+=2){
- if(c[i%210]==1)continue;
- if(f(i)==0){
- printf("BAD %d",i);
- return 0;
- }
- }
- printf("GOOD");
- return 0;
- }
#include<stdio.h> // gs12117
#include<string.h>
int pwd[110];
int c[210];
int pwdlen;
int f(int mod){
int i,left=0;
for(i=0;i<pwdlen;i++){
left*=10;
left+=pwd[i];
left%=mod;
}
return left;
}
int main(){
int n,i,j;
char p[110];
scanf("%s%d",p,&n);
pwdlen=strlen(p);
for(i=0;i<pwdlen;i++){
pwd[i]=p[i]-0;
}
for(i=2;i<=n&&i<8;i++){
if(f(i)==0){
printf("BAD %d",i);
return 0;
}
}
for(i=0;i<210;i+=3)c[i]=1;
for(i=0;i<210;i+=5)c[i]=1;
for(i=0;i<210;i+=7)c[i]=1;
for(i=11;i<=n;i+=2){
if(c[i%210]==1)continue;
if(f(i)==0){
printf("BAD %d",i);
return 0;
}
}
printf("GOOD");
return 0;
}
';
print "
4. Cave (by gs12117)
";
print'- #include<stdio.h> // gs12117
- int loctime[5100];
- int conn[5100];
- int con[5100][5100][2];
- int ans=999999999;
- void f(int loc,int time){
- if(time>=ans)return;
- if(loctime[loc]<=time)return;
- loctime[loc]=time;
- int i;
- for(i=0;i<conn[loc];i++){
- f(con[loc][i][0],time+con[loc][i][1]);
- }
- return;
- }
- int main(){
- int a,b,c,d,i,j,k;
- scanf("%d%d",&a,&b);
- for(i=0;i<b;i++){
- scanf("%d%d%d%d",&c,&d,&j,&k);
- con[c][conn[c]][0]=d;
- con[c][conn[c]][1]=j;
- con[d][conn[d]][0]=c;
- con[d][conn[d]][1]=k;
- conn[c]++;
- conn[d]++;
- }
- for(i=0;i<conn[1];i++){
- for(j=1;j<=a;j++){
- loctime[j]=999999999;
- }
- for(j=0;j<conn[con[1][i][0]];j++){
- if(con[con[1][i][0]][j][0]==1){
- k=j;
- con[con[1][i][0]][j][0]=con[1][i][0];
- break;
- }
- }
- f(con[1][i][0],con[1][i][1]);
- if(loctime[1]<ans)ans=loctime[1];
- con[con[1][i][0]][k][0]=1;
- }
- printf("%d",ans);
- return 0;
- }
#include<stdio.h> // gs12117
int loctime[5100];
int conn[5100];
int con[5100][5100][2];
int ans=999999999;
void f(int loc,int time){
if(time>=ans)return;
if(loctime[loc]<=time)return;
loctime[loc]=time;
int i;
for(i=0;i<conn[loc];i++){
f(con[loc][i][0],time+con[loc][i][1]);
}
return;
}
int main(){
int a,b,c,d,i,j,k;
scanf("%d%d",&a,&b);
for(i=0;i<b;i++){
scanf("%d%d%d%d",&c,&d,&j,&k);
con[c][conn[c]][0]=d;
con[c][conn[c]][1]=j;
con[d][conn[d]][0]=c;
con[d][conn[d]][1]=k;
conn[c]++;
conn[d]++;
}
for(i=0;i<conn[1];i++){
for(j=1;j<=a;j++){
loctime[j]=999999999;
}
for(j=0;j<conn[con[1][i][0]];j++){
if(con[con[1][i][0]][j][0]==1){
k=j;
con[con[1][i][0]][j][0]=con[1][i][0];
break;
}
}
f(con[1][i][0],con[1][i][1]);
if(loctime[1]<ans)ans=loctime[1];
con[con[1][i][0]][k][0]=1;
}
printf("%d",ans);
return 0;
}
';
print "
�� �ع��� �м��Ͽ� ������ �����սô�. ���� ��ϵǸ� �����ϼ���!!";
print '';*/
?>