From a8850814620671b947c914a49f72586cbe0a9321 Mon Sep 17 00:00:00 2001 From: ArunRaja Date: Thu, 7 Jun 2012 13:47:39 +0530 Subject: [PATCH] DynamicProgramming Level1 added --- bin/Topcoder.class | Bin 1856 -> 3715 bytes src/Topcoder.java | 156 +++++++++++++++++++++++++++++++++------------ 2 files changed, 116 insertions(+), 40 deletions(-) diff --git a/bin/Topcoder.class b/bin/Topcoder.class index a98fd3b1db16b69e0a287a418acb05620e5a28c2..5fd1cf535abdf1ac0ff39cc1ab182beb92d5fb88 100644 GIT binary patch literal 3715 zcmZu!U2v1f6+Nr(S3)+D%x7aPfdeVAEn}AeBG}kYaGb`$Ac9>J#idx5WDw}b$PzJW zN|G5fZJOy!o;nGWDK<&RGaWiZGK^`H)RWiJ|MoSV_NjkQed$AILe#VS*)m|vcz3_u zy?5_9_v~GB_p47<06d8|EO-R$vEodsn9h_e=mLTB$xF%ZT(WSsJ3e(jlPU|ChqHxj zxnDqQYabWT2f5h?4PHMCm;#$evW3j?N`5L+8cR;)G6JEIVk(&%PnNRsdv#JTpUch) z_(s;w>!q)JGFuR6Y?~NaKXPIuS5okU+H&!VX7=+O_G2A}vLm1mFL-9F z){JzQW0ZQ^u*5HD-|&cd1w7>xqnWB)7HDo8mOt$qVcB?sp`3`1jt(Cg8M4t%N`{ZE zeKRzkmm-H^m=34*%H~Pg?32xY&QEbL!9|hfVY8JyN9P6VM$5_6g=5JX#kK_+n#}2F z<{}{w?Qr`9@e1_#aS%_@Cdprd@)j!ju~H>uv25gHm`KWWEfA)THpIE=o`OA%tRLrbfi#zk?p+Yr(zelrd&A%**dfpNCCg-I zs-jZmOJ}F2Go?&H3Q3>N%2TbjVQOBAU=|e%!ECW4>5_MZ zdiR$y7c1FPCOwwT)15^S$y}M7n=?h;45^IF+{~G>S~XJ1Qkqjn*}Z7K(PE{P$~>2q zWub2E=66YQ@fby;Q98gTDIb_@Eq-;g7wnCWJFq|Ezylv!xy(s!2K=jIKkE49MLjli zMjC&?eIE7;pF$+=ATaVVg3&5$KC2%piUfPgp_xKAx}xv3Me2 z1`f03%w2YN;1FAHpogt5aDeTmApXS8AK1sXF3`)iK8QcE+Z@Di*#(051G``lzhV~( z;&<#Cg7`DLEkXR6ofCK}zKo`2w5;Q*S0wmgBZ%v0Q1}{M45Vl$vDkPQyNFcM@;JWc zA{8yr6)y=(f(sK{gwPzF&>SP)V`?#L2?w;8t;M`c*ydQet>JlQDbV zD;%%2SpB1XWyMZxHGCe>79f&e)IqKv{CMbbD9LfAA(8ZCiM%^44Jm&~~?`0~t;V>Vn zC{x=?%Y7W#q@or3Ir8EFZMML?hlqukxCdK^2G9RcFa5L1xkTYMJsNT*x}v8)^BoUg zgAu)@#q=dOdmKIL==x+A+pctcUKgC;w#Di{JNAV2^fC^u)39ABtdngQVRjSTUgm2b zN!ZJo0}A?n_oy25gXra|gnp1vBy@|=BsdKLQYXRb3P>HaFHuJzU&0VUny><|BADkE z$y8@c_yZXF%@$+k8tRRX79$s4#=yCoYa`j~lX7nICilD9Yg8fiuOg7pKw4{xO_U&^laqHE6r=f`aDZj-v{i&bucCqp7Ue@Z5tXs1@+`9dk1y{!K43 zGqU>gMYR zJ-B&?Lzgw{xdm7eT7{KSlQLRgz7E54Qxz4*lw7>&nEDlc0U_tU^JwW9>m2p4oC6t3 zVVZaREWfh6FLLFXJK~s#$y=W&D6^Kf){cF)rh0_>SW7q>I1C<1O+xMs~;v zzNvVWqjANfiJ#&WULt2+EU^;F>Qj#!JR{2UgSfg{edH~82X$2j;%X%>g)%|8NC7>* zVbUW+l_n4G)o5UD9ed;&O^gOlm1WdY5?woi>XWV>n&fUN$8Xi-_zz-`Rqj-1hpw#QxMk?C1TA0vq0XP9q)=1uTFhL+PRHnU%&y6n z53pr*7&9V{p+L=>!ZABn7OQ_TJ5u}IE2dGL3%}a7#l~wn9_YdA{|8~}X<`5X literal 1856 zcmZuxUvm>x96dML&1RRRq$yi%5^4n0G%YO@Xt70<)}qmrR8u>X=}R}sLbpw_akD}2 z!KZ!+d7|S3FMUAADKo<0J0HaHD>wtx<_r)Py`ZN)?I6=VYTi|m8x5I%@>GVb6SpnT_BtrTN6+gx!FJ%dJHNe0w;@3 z%f8iZR&8(9sy1waWYMizjWx@2IW2+V+(2bx zngIb_Hpv)IJN-jVT3p67Z|+z?p$uI1Ssw{h35XKQY=?KCXkaa-B8=Mt|umo@ZGwq~_juAi;i z*~7iQo3*lc`}b}bxQ<0xB%ceIxwq{fThnn9UuyW`jk+t}@A!5zh628#t8SMiX!Z^} z?$iov!)JxqR&(A!5w|ofvj&1B-dv8MgcbV3J8bz4+AAGk{TgMr>(%U=j;z%9K`~BB z1iViZ!+aY+lo6|&t;W$5d%<4KKSA_Y1|b-1<+6-Vu#NRLu#a=3V*n>PBM%q2Bg8)b z6r%D3iQ@P^29H1n0!EFDIu9EG*l_OvPQm2CD3uHoR%&<$@AhCt8cHCdqCGPz;Y_Kb zoGw*VQz=yi2&78F4c@5;673jhX0%UP~oXj%9hc4jHDYCqKpQqS7`evlaX_07^y^Fz*(H5zbRb92b|NmdxD&!G~+De zj~MC5@ysbiUg5NcG4TpfA%;T#U_j#YW%Z20??hBNGduoVsXsGrWgb8se;l4s9>F|s zD&wZ2Y)rD9te18a!3l2Lef@X-d`7A7W8%mLDFdX}DCq>n#3^8iL}%DfQl2b>%RQ>Y z)MvSJE=YZrRU}i_Xq!wfj0DFrIVDIWj_^ywnaE41VvtAp>iZe&aEmOKO}y2$nt$!971DvM|?kelt{9?G3y0==7> zz?DF*^jJYiOHd2H8+}DveMKp0W_m9jdI&YNm(Qp7F&o%6f5hJ_@Eg3%1#&MP<4qm% zrUG+hg{1Jwao$LTbNs0Fc`sA1yj|ldu2+(uJ;B1C936j+?Et^`8jU_aKM;pcd6v5+ ikNz8$64U$m`sgJZ0kqE&>mCDmax) + max = a; } + + return (max - (min-1)) - ducks.length; //http://community.topcoder.com/stat?c=problem_statement&pm=11631 } - int swapToPossibleMax(int n) + // Sorted Array Create from unsorted array by moving one value at a time - Find : Number of moves required on optimal solution for Worst case + int solve(int[] T) { - char[] c = Integer.toString(n).toCharArray(); - int m_idx = -1; - char max=0; - - if(c.length==1) - return -1; + int moves = 0; + for(int i=0;i<(T.length/2);i++) // note: half the array comparison is enough + { + moves += T[T.length-i-1] - T[i]; + } + return moves; // http://community.topcoder.com/stat?c=problem_statement&pm=11336 + } + + // Fill '?' in string with 'o' or 'x' to make palindrome with minCost + int getMinimum(String s, int oCost, int xCost) + { + char[] cArr = s.toCharArray(); + int cost = 0; + int l = cArr.length; - //choosing the max elem other than first one - for(int i=1;imax) + if (cArr[i] == '?' && cArr[l-i-1]=='?') { - max = c[i]; - m_idx = i; + cost += 2* ((oCost c[0]) + if((l&1)==1) { - - // swap 1 st and max elem - char tc = c[0]; - c[0] = c[m_idx]; - c[m_idx] = tc; - + cost += (oCostmax ? attributes[i] : max; } - else + System.out.println("max - "+max); + + for(int i=0;i