print " Á¦10ȸ I am coder °á°úÀÔ´Ï´Ù.
´ÙÀ½¿¡ ÁغñÁßÀÎ ¸ðÀÇ°í»ç¿¡µµ Âü°¡ÇØ Áֽñ⠹ٶø´Ï´Ù.
";
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!! ] (614pts)"; print "
: gs11008
"; print "
Gold Medal List!! (over 420pts)
: gs11008, gs12065, dijkstra, teram, gs10107, gs12059, gs12117
"; print "
Silver Medal List (over 308pts)
: issac, xxxxx, kk1401, seotos, gs12122, ainta, ryanchl, gs11135, ajou709
Bronze Medal List (over 218pts)
: gs12047, jyj0312, gs12120, gs11098, gs11028, gs11117, gs11018, commaster0, gs12116, gs11103, woo960131, gs12115, mufflin, gs10102, gs12019
Rank | user | Faucet (160) | Rope Cutting (180) | Virus (200) | Polygon (220) | Festival (240) | Score |
'.($rank[$i]+1).' | '; print ''.$iuser[$i].' | '; print ''.$ip1[$i].' | '; print ''.$ip2[$i].' | '; print ''.$ip3[$i].' | '; print ''.$ip4[$i].' | '; print ''.$ip5[$i].' | '; print ''.(floor($isc[$i])).' | '; print "
#include<stdio.h> main() // by dijkstra { int i,n; scanf("%d",&n); for(i=1;i*i<=n;i++); printf("%d",i-1); }
#include <stdio.h> #include <algorithm> #define MAX 123456789 // by gs12065 (O(n^3) DP MAX n is 50) int length, n, pos[55], dp[55][55]; int main(){ scanf("%d%d", &length, &n); int i, j, k; pos[0] = 0; for(i=1; i<=n; i++) scanf("%d", &pos[i]); pos[n+1] = length; std::sort(pos, pos+n+2); for(i=2; i<=n+1; i++){ for(j=0; j+i<=n+1; j++){ dp[j][j+i] = MAX; for(k=1; k<i; k++){ dp[j][j+i] = std::min(dp[j][j+i], pos[j+i]-pos[j]+dp[j][j+k]+dp[j+k][j+i]); } } } printf("%d\n", dp[0][n+1]); return 0; }
#include<stdio.h> int line[1010]; int ce[1010][1010]; // gs12117 (O(L^2) Memoization(DP) MAX L is 1000) int cut(int s,int e){ if(ce[s][e]>0)return ce[s][e]; int i,energy=999999999; for(i=s+1;i<e;i++){ if(line[i]==1){ if(energy>cut(s,i)+cut(i,e)){ energy=cut(s,i)+cut(i,e); } } } if(energy==999999999)energy=0; ce[s][e]=energy+e-s; return ce[s][e]; } int main(){ int a,b,c,i; scanf("%d%d",&a,&b); for(i=0;i<b;i++){ scanf("%d",&c); line[c]=1; } printf("%d",cut(0,a)-a); }
#include <stdio.h> #include <math.h> #include <algorithm> #define MIN(x,y) ((x)<(y)?(x):(y)) int n; double ANS; // by k5888200 (Divide & Conquer Solution) struct X{ double x,y; }a[10005]; bool cmp_x(X aa, X bb){ if(aa.x!=bb.x) return aa.x<bb.x; return aa.y<bb.y; } bool cmp_y(X aa, X bb){ if(aa.y!=bb.y) return aa.y<bb.y; return aa.x<bb.x; } double len(X aa, X bb){return sqrt((aa.x-bb.x)*(aa.x-bb.x)+(aa.y-bb.y)*(aa.y-bb.y));} double f(int left, int right){ if(left==right) return ANS; if(left+1==right) return len(a[left],a[right]); double min1, min2, min, Min; int mid; mid=(left+right)>>1; min1=f(left,mid); printf("",min1); min2=f(mid+1,right); ANS=min=Min=MIN(min1,min2); int i,j,k,l; for(i=mid;i>left;i--) if(a[mid].x-min>a[i].x) break; left=i+1; for(i=mid;i<=right;i++) if(a[i].x>a[mid].x+min) break; right=i-1; std::sort(a+left,a+right+1,cmp_y); for(i=j=left;j<=right;j++){ while(a[j+1].y<a[i].y+min && j+1<=right) j++; for(k=i;k<=j;k++){ for(l=k+1;l<=j;l++){ Min=MIN(Min,len(a[k],a[l])); } } } std::sort(a+left,a+right+1,cmp_x); return Min; } int main(){ int i; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%lf%lf",&a[i].x,&a[i].y); std::sort(a+1,a+1+n,cmp_x); ANS=len(a[1],a[2]); printf("%.2lf",f(1,n)); }
#include<stdio.h> #include<memory.h> int pre,n,qqq[510][2],x[510],chk[510],dap=1<<30,lll[510],z; struct data{ int a,b; // by gs11008 (using IndexTree) almost Perfect } indextree[1<<12]; int i,j,maxx; int f(int a,int b){ int M=0; while(a<b){ if(~b&1){ if(M<indextree[b].b) M=indextree[b].b; b--; } a>>=1,b>>=1; } if(a==b&&M<indextree[a].b)M=indextree[a].b; return M; } int main(){ scanf("%d",&n); for(i=1;i<=n;i++)scanf("%d%d",qqq[i],qqq[i]+1); pre=x[0]=chk[1]=1; for(i=1;i<n;i++){ if(chk[qqq[pre][0]]==0){ chk[qqq[pre][0]]=1; x[i]=qqq[pre][0]; pre=qqq[pre][0]; } else if(chk[qqq[pre][1]]==0){ chk[qqq[pre][1]]=1; x[i]=qqq[pre][1]; pre=qqq[pre][1]; } else break; } if(i!=n || (qqq[x[n-1]][0]!=1 && qqq[x[n-1]][1]!=1))return printf("-1"); for(z=0;z<n;z++){ memset(indextree,0,sizeof(indextree)); for(i=0;i<n;i++) lll[i]=x[(i+z)%n]; int p; for(p=1;p<=n;p*=2); for(i=0;i<n;i++){ int t=p+lll[i]-1; indextree[t].a=1; indextree[t].b=f(p,t-1)+1; for(j=t;j>1;j>>=1){ if(indextree[j>>1].a==0)indextree[j>>1]=indextree[j]; else if(indextree[j>>1].b<indextree[j].b)indextree[j>>1]=indextree[j]; } } if(n-indextree[1].b<dap)dap=n-indextree[1].b; } for(i=0;i<n/2;i++){ int t=x[i]; x[i]=x[n-i-1]; x[n-i-1]=t; } for(z=0;z<n;z++){ memset(indextree,0,sizeof(indextree)); for(i=0;i<n;i++) lll[i]=x[(i+z)%n]; int p; for(p=1;p<=n;p*=2); for(i=0;i<n;i++){ int t=p+lll[i]-1; indextree[t].a=1; indextree[t].b=f(p,t-1)+1; for(j=t;j>1;j>>=1){ if(indextree[j>>1].a==0)indextree[j>>1]=indextree[j]; else if(indextree[j>>1].b<indextree[j].b)indextree[j>>1]=indextree[j]; } } if(n-indextree[1].b<dap)dap=n-indextree[1].b; } printf("%d",dap); }