print " 5ȸ ³ª´ÂÄÚ´õ´Ù(Chick) °á°úÀÔ´Ï´Ù.
";
print " ¾Æ·¡ Á¡¼ö´Â Âü¿©ÇÑ ¸ðµç ºÐ¿¡ ´ëÇÑ °á°úÀÔ´Ï´Ù.
´ÙÀ½¿¡ ÁغñÁßÀÎ ¸ðÀÇ°í»ç¿¡µµ Âü°¡ÇØ Áֽñ⠹ٶø´Ï´Ù.
";
print "
¹ü·Ê : o - Accepted, x - Wrong Answer, s - signal out(runtime error), t - Time Limit Exceeded
";
print "5ȸ ³ª´Â ÄÚ´õ´Ù(Chick)!! °á°ú
";
print "
Gold Medal - ÇÑ ¹øÀÌ¶óµµ Á¦ÃâÇÑ Âü°¡ÀÚÀÇ 10%, Silver Medal - Âü°¡ÀÚÀÇ 20%, Bronze Medal - Âü°¡ÀÚÀÇ 30%
";
print " : dijkstra, gs12065, k5888200, pl0892029, wdyd2004, zlzmsrhak56
";
print " : takuma, gs11008, makesource, ainta, jhp109, cjmpl, seaguy
";
print " : nobe0716, gs11059, sujin, jerry1259, commaster0, teram, augusy14, alskdj28, gs11103, toowhalsrb2, sst, gs12038
";
$dir="/var/www/bbs/moi/5thchk/";
$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).'';
if($j!=4) $score += 25+($j*0.001);
else $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¹ø ¹®Á¦ÀÇ Á¡¼ö ¼øÀ¸·Î ¿ì¼±¼øÀ§°¡ Á¤ÇØÁý´Ï´Ù.)
Rank | user | 2Players(250) | Dice(250) | Number(250) | Stacking Cup(250) | Score |
'.($rank[$i]+1).' | '; print ''.$iuser[$i].' | '; print ''.$ip1[$i].' | '; print ''.$ip2[$i].' | '; print ''.$ip3[$i].' | '; print ''.$ip4[$i].' | '; print ''.(floor($isc[$i])).' | '; print "
#include <stdio.h> // this solution is dynamic programming using memory cutting! int n, i, front, cnt, sum; main() { scanf("%d",&n); for(i=1;i<=n;i++) { sum+=i; while(sum>n) sum-= ++front; if(sum==n) cnt++; } printf("%d",cnt); }
#include <stdio.h> // This is methmatical skill long long N; int count; int main(){ long long k; scanf("%lld",&N); for(k=1;k<=N;k++){ if( (2*N-k*k+k)%(2*k) ==0 && (2*N-k*k+k)/(2*k)>=1) count++; } printf("%d",count); return 0; }
#include<stdio.h> // This is SCC(Strongly Connected Component). Try seach SCC (using googling!!) #include<vector> using namespace std; vector<int> way[10005]; vector<int> bay[10005]; vector<int> nay[10005]; vector<int> stack; int num[10005],ad[10005],dy[10005],n,m,st,en,cnt=0; bool check[10005],sch,ech; void input() { int i,a,b; scanf("%d%d%d%d",&n,&m,&st,&en); for(i=0;i<m;i++){ scanf("%d%d",&a,&b); way[a].push_back(b); bay[b].push_back(a); } } void DFS(int x) { int i; for(i=0;i<way[x].size();i++){ if(check[way[x][i]])continue; check[way[x][i]]=true; DFS(way[x][i]); } stack.push_back(x); } void nDFS(int x) { if(x==st&&!sch){ st=cnt; sch=true; } if(x==en&&!ech){ en=cnt; ech=true; } int i; for(i=0;i<bay[x].size();i++){ if(ad[bay[x][i]]!=0&&ad[bay[x][i]]!=cnt&&(nay[ad[bay[x][i]]].empty()||nay[ad[bay[x][i]]].back()!=cnt)){ nay[ad[bay[x][i]]].push_back(cnt); } if(check[bay[x][i]])continue; check[bay[x][i]]=true; nDFS(bay[x][i]); } num[cnt]++; ad[x]=cnt; } void scc() { int i; for(i=1;i<=n;i++){ if(check[i])continue; check[i]=true; DFS(i); } for(i=1;i<=n;i++)check[i]=false; for(i=stack.size()-1;i>=0;i--){ if(check[stack[i]])continue; cnt++; check[stack[i]]=true; nDFS(stack[i]); } } void solve() { int i,j; dy[st]=num[st]; for(i=st;i<=en;i++){ for(j=0;j<nay[i].size();j++){ if(dy[nay[i][j]]<num[nay[i][j]]+dy[i])dy[nay[i][j]]=num[nay[i][j]]+dy[i]; } } printf("%d",dy[en]); } int main() { input(); scc(); solve(); return 0; }
#include<stdio.h> // This is Dynamic Programming (named Bitonic Tour) best solution!! #define max(a,b) (a>b?(a):(b)) int d[220][110][110],n,m; int s[110][110]; main() { int i,j,k; scanf("%d%d",&m,&n); for(i=1;i<=n;i++) for(j=1;j<=m;j++) scanf("%1d",&s[i][j]); for(i=1;i<=n;i++) for(j=1;j<=m;j++) s[i][j]=s[i][j]==1?1:s[i][j]==0?0:-1; for(k=2,d[1][1][1]=s[1][1]+1;k<n+m;k++) for(i=1;i<=n;i++) { if(s[i][k-i+1]==-1) continue; for(j=i;j<=n;j++) { int score=0; if(i!=j) score = s[i][k-i+1]+s[j][k-j+1]; else score = s[i][k-i+1]; if(s[j][k-j+1]==-1) continue; d[k][i][j] = max(d[k-1][i-1][j],max(d[k-1][i][j-1],max(d[k-1][i][j],d[k-1][i-1][j-1]))); d[k][i][j] = d[k][i][j]?d[k][i][j]+score:0; } } printf("%d\n",d[n+m-1][n][n]?d[n+m-1][n][n]-1:0); }