<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' gd:etag='W/&quot;D08FRXYycSp7ImA9WhJRGU8.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584</id><updated>2012-07-22T11:56:54.899+09:00</updated><category term='DIV II'/><category term='Almost'/><category term='SPOJ PALIN'/><category term='Intro'/><category term='NSTEPS'/><category term='SPOJ'/><category term='e2m'/><category term='0221'/><category term='Reverser'/><category term='Cup'/><category term='ipython'/><category term='FCTRL2'/><category term='Characters'/><category term='PRIME1'/><category term='147'/><category term='FCTRL'/><category term='python'/><category term='CUDA'/><category term='Studious Student'/><category term='AMD'/><category term='Parallel Computing'/><category term='293'/><category term='OpenCL'/><category term='TOANDFRO'/><category term='Facebook'/><category term='496'/><category term='192'/><category term='337'/><category term='AOJ'/><category term='Keylogger'/><category term='emacs'/><category term='cygwin'/><category term='Hacks'/><category term='AOJ 0004'/><category term='148'/><category term='Implicit Vectorizer'/><category term='Hacker'/><category term='TopCoder'/><category term='0109'/><category term='NVIDIA'/><category term='SRM'/><category term='JULKA'/><category term='Tool'/><category term='AOJ 0005'/><category term='editor'/><category term='AOJ 0026'/><category term='AOJ 0029'/><category term='ADDREV'/><category term='0030'/><category term='Intel'/><title>Just another programmer</title><subtitle type='html'>; cout &amp;lt;&amp;lt; &amp;quot;ardiyu07&amp;quot; &amp;lt;&amp;lt; endl;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;C0UAQHk5fCp7ImA9WhJRGEU.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-3795113173746212425</id><published>2012-07-21T23:33:00.001+09:00</published><updated>2012-07-21T23:34:01.724+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-07-21T23:34:01.724+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='e2m'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title>Coding with Emacs and e2wm, a brilliant emacs windows manager</title><content type='html'>&lt;div&gt;
I've been using emacs for a while now and never intend to move on to vi, and especially other gui IDEs, because I simply just cant move my pinky finger from ctrl, it just automatically gets stuck there lol. and the IDEs editors are just too fancy for me.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Anyway the most annoying problem when developing with emacs is the project management, right? Since I believe you don't wanna ctrl+x ctrl+c to grep for some stuffs, and just split the emacs window to then do some shell stuffs there. It's pretty troublesome when you quit your emacs and then you have to split the windows to your preference again. Times like these, you have to define the splitting functions to .emacs and it's gonna suck more of your precious time again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-2dqpGgCMXDE/UAq56kcm4oI/AAAAAAAAAHk/NSt-Msov8qs/s1600/emacs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://2.bp.blogspot.com/-2dqpGgCMXDE/UAq56kcm4oI/AAAAAAAAAHk/NSt-Msov8qs/s400/emacs.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: justify;"&gt;
&lt;span style="text-align: -webkit-auto;"&gt;Well brace yourself, this tool is the perfect tool for project management for emacs,&amp;nbsp;&lt;/span&gt;&lt;a href="https://github.com/kiwanami/emacs-window-manager" style="text-align: -webkit-auto;"&gt;e2wm&lt;/a&gt;&lt;span style="text-align: -webkit-auto;"&gt;! Basically there are 5 kinds of perspectives you can choose for splitting the windows, Code, Two, Doc, Dashboard, and Array perspective, which is respectively equipped with various emacs tools.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="text-align: -webkit-auto;"&gt;To use e2wm is simple, what you have to do is just download e2wm-config.el, e2wm-vcs.el, and e2wm.el and then put it in your emacs path, and then add:&lt;/span&gt;
&lt;br /&gt;
&lt;pre style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin-bottom: 15px; margin-top: 15px; overflow: auto; padding: 6px 10px;"&gt;&lt;code style="background-color: transparent; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px; padding: 0px;"&gt;(require 'e2wm)
(global-set-key (kbd "M-+") 'e2wm:start-management)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
to your .emacs file!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
this is the link to kiwanami's github (the author of e2wm, thanks!):&amp;nbsp;
&lt;a href="https://github.com/kiwanami"&gt;https://github.com/kiwanami&lt;/a&gt;&lt;br /&gt;
and this is the link to e2wm's github repo:&amp;nbsp;&lt;a href="https://github.com/kiwanami/emacs-window-manager"&gt;https://github.com/kiwanami/emacs-window-manager&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-3795113173746212425?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/3795113173746212425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2012/07/coding-with-emacs-and-e2wm-brilliant.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/3795113173746212425?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/3795113173746212425?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2012/07/coding-with-emacs-and-e2wm-brilliant.html' title='Coding with Emacs and e2wm, a brilliant emacs windows manager'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-2dqpGgCMXDE/UAq56kcm4oI/AAAAAAAAAHk/NSt-Msov8qs/s72-c/emacs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0UBR346cCp7ImA9WhJRGEU.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-7971123588007685069</id><published>2012-07-21T23:04:00.003+09:00</published><updated>2012-07-21T23:34:16.018+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-07-21T23:34:16.018+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Implicit Vectorizer'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCL'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel'/><title>Intel OpenCL Implicit Vectorizer</title><content type='html'>&lt;br /&gt;
&lt;div style="font-family: MuseoSans-300, arial, sans-serif; line-height: 1.4em; margin-bottom: 1.6em; padding: 0px;"&gt;
OpenCL compiler differs depending on its vendor, and Intel optimizes its compiler to auto-vectorize some loops that may take the advantage of the SSE and AVX instructions.&lt;/div&gt;
&lt;div style="font-family: MuseoSans-300, arial, sans-serif; line-height: 1.4em; margin-bottom: 1.6em; padding: 0px;"&gt;
For example, the Black-Scholes equation when executed with single thread C99 and single thread OpenCL thread gives the execution time as below:&lt;/div&gt;
&lt;ul style="font-family: MuseoSans-300, arial, sans-serif; list-style: none; margin: 0px 0px 15px; padding: 0px;"&gt;
&lt;li style="background-image: url(https://d2h0j0bhq7ad3b.cloudfront.net/assets/gold-star-8212d63b65ce2ee201e8768233148f2a.png); background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin: 0px 0px 5px; padding: 0px 0px 0px 25px;"&gt;Input: 10MB of data&lt;/li&gt;
&lt;li style="background-image: url(https://d2h0j0bhq7ad3b.cloudfront.net/assets/gold-star-8212d63b65ce2ee201e8768233148f2a.png); background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin: 0px 0px 5px; padding: 0px 0px 0px 25px;"&gt;calculates both call and put option&lt;/li&gt;
&lt;li style="background-image: url(https://d2h0j0bhq7ad3b.cloudfront.net/assets/gold-star-8212d63b65ce2ee201e8768233148f2a.png); background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin: 0px 0px 5px; padding: 0px 0px 0px 25px;"&gt;both uses -O3 compiler option of gcc-4.4&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="font-family: MuseoSans-300, arial, sans-serif; line-height: 1.4em; margin-bottom: 1.6em; padding: 0px;"&gt;
c99 : 1612.203 ms&lt;br /&gt;
OpenCL : 673.248 ms&lt;/div&gt;
&lt;div style="font-family: MuseoSans-300, arial, sans-serif; line-height: 1.4em; margin-bottom: 1.6em; padding: 0px;"&gt;
This 'hidden' optimization is kinda cool, isn't it?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-7971123588007685069?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/7971123588007685069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2012/07/intel-opencl-implicit-vectorizer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/7971123588007685069?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/7971123588007685069?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2012/07/intel-opencl-implicit-vectorizer.html' title='Intel OpenCL Implicit Vectorizer'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A08ARHY9cSp7ImA9WhJRGEo.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-7363653916212079178</id><published>2012-07-18T23:21:00.002+09:00</published><updated>2012-07-21T23:10:45.869+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-07-21T23:10:45.869+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='CUDA'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCL'/><category scheme='http://www.blogger.com/atom/ns#' term='NVIDIA'/><category scheme='http://www.blogger.com/atom/ns#' term='AMD'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel Computing'/><title>Let's parallelize everything</title><content type='html'>Who does not want to see his programs run faster? Using exactly the same machine, same cpu, same gpu, same programming language? Many parallel programming frameworks/APIs have been developed and released recently, and with the help of many amazing programmers worldwide, these APIs have also been wrapped beautifully into many front-end languages such as Python, Ruby, or even Javascript. Some also are under development to be ported to more delicate programming languages such as Haskell, Scala, or Clojure. Soo for those of you who haven't seen/experienced the&amp;nbsp;elegance&amp;nbsp;of parallel computing, what are you waiting for? Let's parallelize everything!&lt;br /&gt;
&lt;br /&gt;
Let me share here some of the parallel programming frameworks I know, and I believe they are famous enough to not get&amp;nbsp;disappointed&amp;nbsp;when using it.&lt;br /&gt;
&lt;br /&gt;
First of all, there is &lt;a href="http://www.nvidia.com/content/devzone/index.html"&gt;&lt;b&gt;CUDA&lt;/b&gt;&lt;/a&gt;, developed by NVIDIA, a leading company in the Graphics Processing Unit devices. I have been developing some programs using CUDA for 2 years now, and the API itself is pretty simple and straightforward to use, and I am amazed with the number of sample programs they provided inside the CUDA Toolkit, makes us incredibly easy to learn some stuffs, not only how to use CUDA API but also some important algorithms and tuning-up for developing a parallel executed program. Having said so, actually it was pretty hard to develop using CUDA back then (when it was still version 1.x), but NVIDIA just released a new version of CUDA (CUA 4.2 going to CUDA 5) and everything just became easier, to understand, to install, and to develop with that. Most important thing, note that since NVIDIA is the developer and it is not an open source software, CUDA is only available for NVIDIA's GPUs (from GeForce 8800 to the newest one). The technique of having your computation that is supposed to run sequentially on CPU is basically called a &lt;b&gt;GPGPU (General Purposed GPU) &lt;/b&gt;computing.&lt;br /&gt;
&lt;br /&gt;
And then there is &lt;b&gt;&lt;a href="http://www.khronos.org/opencl/"&gt;OpenCL&lt;/a&gt;&lt;/b&gt;, derived from &lt;b&gt;Open Computing Language&lt;/b&gt;, initially developed Apple and Khronos Group. OpenCL is a framework for parallelization and is aimed to be able to execute &amp;nbsp;in many platforms. At first OpenCL was only released with the standard C99 API but then they added the C++ wrappers to the runtime API, hence makes us easier to do some OOP stuffs. OpenCL can run on some major vendors' devices: AMD, Intel, and NVIDIA, where each vendor has its own compiler (or library) to interpret and/or optimize the standardized OpenCL runtime API. afaik it is Khronos who's been leading the OpenCL development and standardizing the API. Since every vendor has different technology equipped to its device, each of them releases its own OpenCL programming SDK and this can be seen inside the website respectively: &lt;a href="http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx"&gt;AMD OpenCL SDK&lt;/a&gt;, &lt;a href="http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/"&gt;Intel OpenCL SDK&lt;/a&gt;, and NVIDIA OpenCL SDK which comes with the CUDA Toolkit. Each SDK is provided with a unique library and some sample programs, and each vendor's compiler has its own way to optimize in compile time. IMO, learning OpenCL will not be that hard if you have previously done some CUDA programming.&lt;br /&gt;
&lt;br /&gt;
Those two above are the APIs I've been using for a while to do some parallel stuffs, and there are plenty more out there and you can get some of them for free (or maybe even already installed in your computer) but some aren't.&lt;br /&gt;
Examples for free APIs: &lt;a href="http://openmp.org/wp/"&gt;OpenMP&lt;/a&gt;, &lt;a href="http://threadingbuildingblocks.org/"&gt;Intel's TBB&lt;/a&gt;, &lt;a href="http://software.intel.com/en-us/articles/intel-array-building-blocks/"&gt;Intel's ArBB&lt;/a&gt;, &lt;a href="https://computing.llnl.gov/tutorials/pthreads/"&gt;Pthreads&lt;/a&gt;&lt;br /&gt;
Not free: &lt;a href="http://www.pgroup.com/resources/accel.htm"&gt;PGI's Compiler with OpenACC&lt;/a&gt;, &lt;a href="http://www.caps-entreprise.com/fr/page/index.php?id=148&amp;amp;p_p=36"&gt;CAPS' Compiler with OpenACC&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-7363653916212079178?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/7363653916212079178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2012/07/lets-parallelize-everything.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/7363653916212079178?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/7363653916212079178?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2012/07/lets-parallelize-everything.html' title='Let&apos;s parallelize everything'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUYCQXc-fSp7ImA9WhJRFkw.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-1299537936788804857</id><published>2012-04-15T15:35:00.002+09:00</published><updated>2012-07-18T22:12:40.955+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-07-18T22:12:40.955+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title>Facebook is blocked in your office? Maybe this will help you a bit ;)</title><content type='html'>I think there aren't few of you who want to access &lt;a href="http://www.facebook.com/"&gt;your facebook page,&lt;/a&gt; but the page is being blocked by the server and you can't visit it.&lt;br /&gt;
&lt;br /&gt;
Maybe this will give you a hint to backdoor the security!&lt;br /&gt;
&lt;br /&gt;
First of all, you should know that every website has its &lt;a href="http://computer.howstuffworks.com/internet/basics/question549.htm"&gt;own ip address&lt;/a&gt;, which will give you a unique identifier so your system will make sure that it visits the right page, even though there are two websites with the same name.&lt;br /&gt;
&lt;br /&gt;
For example, Twitter's IP address is 199.59.150.39&lt;br /&gt;
If you hit http://199.59.150.39 to your address bar, then boom, twitter page will show up.&lt;br /&gt;
&lt;br /&gt;
But that is not only it, this IP address will then be translated again to a 'human' number which is the true unique identifier.&lt;br /&gt;
&lt;br /&gt;
How? First we translate the IP address to a sequence of binary numbers.&lt;br /&gt;
Twitter's IP address above will be translated to:&lt;br /&gt;
&lt;br /&gt;
11000111 . 00111011 . 10010110 . 00100111&lt;br /&gt;
(&lt;a href="http://www.wikihow.com/Convert-from-Decimal-to-Binary"&gt;Learn how to convert a number to binary&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
And then, the dots exist in between will vanish and all sequences will be joined.&lt;br /&gt;
&lt;br /&gt;
11000111001110111001011000100111&lt;br /&gt;
&lt;br /&gt;
Guess what, this will also be the unique identifier if you convert it back again to the decimal number,&lt;br /&gt;
which will give us:&lt;br /&gt;
&lt;br /&gt;
3342571047&lt;br /&gt;
&lt;br /&gt;
Try to check it out!&lt;br /&gt;
hit http://3342571047 to your address bar.&lt;br /&gt;
&lt;br /&gt;
Anyway, all of these conversions can be done in python within 2 lines.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;#!/usr/bin/env python&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# ip_trans.py&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;import sys&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;print 'http://%i' % int(''.join([bin(int(x)+256)[3:] for x in sys.argv[1].split('.')]),2)&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
And run the program with an ip address as the argument:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ python ip_trans.py 199.59.150.39&lt;br /&gt;http://3342571047&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-1299537936788804857?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/1299537936788804857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2012/04/facebook-is-blocked-in-your-office.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/1299537936788804857?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/1299537936788804857?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2012/04/facebook-is-blocked-in-your-office.html' title='Facebook is blocked in your office? Maybe this will help you a bit ;)'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0UBRHs5eCp7ImA9WhVXFEs.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-1857177072242578067</id><published>2012-04-15T14:46:00.002+09:00</published><updated>2012-04-15T14:54:15.520+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-15T14:54:15.520+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='ipython'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><title>ipython-0.12 installation in Cygwin</title><content type='html'>ipython with numpy+scipy+matplotlib Installation Procedures: (as of April 2012)&lt;br /&gt;
&lt;br /&gt;
1. Install some packages from cygwin setup.exe:&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * liblapack&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * fortran compilers and some fortran packages (best to download all related to fortran)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * libgfortran&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * python packages&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * libpng&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * freetype2&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * c/c++ compilers&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * libboost&lt;br /&gt;
&lt;br /&gt;
2. Install libffi (required for ipython)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Download &lt;a href="ftp://sourceware.org/pub/libffi/libffi-3.0.11.tar.gz"&gt;libffi-3.0.11&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Extract folder&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Configure the installation&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ./configure&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Install&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make install&lt;br /&gt;
&lt;br /&gt;
3. Install ATLAS (Automatic Tuned Linear Algebra Software) (required for numpy+scipy)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * caution: this installation may cause stress due to the installation time, which may take all day.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Download &lt;a href="http://sourceforge.net/projects/math-atlas/files/Stable/3.8.4/atlas3.8.4.tar.bz2/download"&gt;atlas-3.8.4&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Extract folder&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Make build folder (Installation procedure is written inside INSTALL.txt)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mkdir cygwin_build&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Configure (there is only 32-bit version)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ../configure -b 32&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Install&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make check&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make ptcheck&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make time&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make install&lt;br /&gt;
&lt;br /&gt;
4. Install nose (testing package for scipy+numpy)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Download &lt;a href="http://pypi.python.org/packages/source/n/nose/nose-1.1.2.tar.gz#md5=144f237b615e23f21f6a50b2183aa817"&gt;nose-1.1.2&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Extract folder&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Build file&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py build&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Install&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Install numpy (required for matplotlib and for.... python programmer.)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Download &lt;a href="http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/numpy-1.6.1.zip/download"&gt;numpy-1.6.1&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Extract folder&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Build file (I faced some bugs when doing this, if you also happen to face them, I'll try my best to help)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py build&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Install&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py install&lt;br /&gt;
&lt;br /&gt;
6. Install scipy (required for.... python programmer.)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Download &lt;a href="http://sourceforge.net/projects/scipy/files/scipy/0.10.1/scipy-0.10.1.zip/download"&gt;scipy-0.10.1&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Extract folder&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Build file&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py build (also some bugs here)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Install&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py install&lt;br /&gt;
&lt;br /&gt;
7. Install matplotlib (required for ipython)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Download &lt;a href="http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz/download"&gt;matplotlib-1.1.0&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Extract folder&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Copy the setup.cfg.template to setup.cfg&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cp setup.cfg.template setup.cfg&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Uncomment line 70&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tkagg = False&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Try to build the program&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py build&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * If there is an error saying unable to remap a dll file or such, we have to run the rebase command of cygwin, using CO\MMAND PROMPT:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd C\cygwin\bin&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ash&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PATH=. rebaseall -v&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...wait until it finishes&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Try to build the program once again&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py build&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Look at the pkg_config, if it says it's not configured right for libffi package, put this in your .bashrc:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; export PKG_CONFIG_PATH=/usr/local/lib/pkconfig (after making sure that libffi.pc is here)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * And also make sre that you satisfied all dependencies.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * After the build succeed, install&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py install&lt;br /&gt;
&lt;br /&gt;
8. FINALLY. Install ipython.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Download &lt;a href="http://archive.ipython.org/release/0.12/ipython-0.12.zip"&gt;ipython-0.12&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Extract folder&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Build file&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py build (also some bugs here)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * Install&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; python setup.py install&lt;br /&gt;
&lt;br /&gt;
9. Now that we finished all installations, let's run some tests.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * open ipython&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipython --pylab&lt;br /&gt;
&amp;nbsp;&amp;nbsp; * show a sin(x) figure&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = arange(-5,5,0.1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = sin(x)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; plot(x,y)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; savefig("sin_x.png") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; * And that code should have shown you a figure of a beautiful sin(x) wave:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-pbTSaH13Dwc/T4pgq9vF6rI/AAAAAAAAACs/0Nlb2khXeto/s1600/tes2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/-pbTSaH13Dwc/T4pgq9vF6rI/AAAAAAAAACs/0Nlb2khXeto/s400/tes2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-1857177072242578067?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/1857177072242578067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2012/04/ipython-012-installation-in-cygwin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/1857177072242578067?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/1857177072242578067?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2012/04/ipython-012-installation-in-cygwin.html' title='ipython-0.12 installation in Cygwin'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-pbTSaH13Dwc/T4pgq9vF6rI/AAAAAAAAACs/0Nlb2khXeto/s72-c/tes2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUANR3s-cCp7ImA9WhVXFEs.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-5833313549076756069</id><published>2012-04-15T14:27:00.000+09:00</published><updated>2012-04-15T14:29:56.558+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-15T14:29:56.558+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><title>cygwin + ipython. a perfection.</title><content type='html'>I'm one of those programmer who just loves anything about Unix, but just feels weird about using Linux GUI hence stuck with Windows 7.&lt;br /&gt;
&lt;br /&gt;
The most perfect tool for us is ofcourse, &lt;a href="http://www.cygwin.com/" target="_blank"&gt;Cygwin&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
However, there are some (many, actually) weaknesses in Cygwin such as sometime you have to manually figure out how to install some softwares manually, instead of just invoking sudo apt-get in a Linux system.&lt;br /&gt;
&lt;br /&gt;
I recently just faced this problem when trying to install ipython with numpy+scipy+matplotlib in my system in Cygwin, and had to waste all-saturday to finally have it installed correctly.&lt;br /&gt;
&lt;br /&gt;
Nevertheless, It was really worth the time.&lt;br /&gt;
&lt;br /&gt;
Cygwin + Ipython. is. just. amazing.&lt;br /&gt;
&amp;nbsp;You can literally do anything you want since there are ridiculously many amazing python libraries that you can invoke anytime you want anything you need.&lt;br /&gt;
&lt;br /&gt;
I seriously recommend to every python programmer who uses Cygwin out there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-5833313549076756069?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/5833313549076756069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2012/04/cygwin-ipython-perfection.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/5833313549076756069?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/5833313549076756069?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2012/04/cygwin-ipython-perfection.html' title='cygwin + ipython. a perfection.'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>3</thr:total></entry><entry gd:etag='W/&quot;DUAMQXozeyp7ImA9WhVXFEs.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-7454456199779493519</id><published>2012-04-15T14:18:00.000+09:00</published><updated>2012-04-15T14:29:40.483+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-15T14:29:40.483+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title>Turning Python-nese</title><content type='html'>Just recently I'm in love with python language, not just because it fastens your software development milestone, it only also has brilliant developers who make this language more convenient to use. PyOpenCL and PyCUDA are only some simple examples. ipython is another amazing tool.&lt;br /&gt;
&lt;br /&gt;
Check out the project &lt;a href="http://ipython.org/" target="_blank"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-7454456199779493519?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/7454456199779493519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2012/04/turning-python-nese.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/7454456199779493519?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/7454456199779493519?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2012/04/turning-python-nese.html' title='Turning Python-nese'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEAGSHs_fSp7ImA9WhVXFEs.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-1171770217348342288</id><published>2012-04-15T14:12:00.000+09:00</published><updated>2012-04-15T14:12:09.545+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-15T14:12:09.545+09:00</app:edited><title>Fresh graduate</title><content type='html'>Having been busy throughout the entire senior year of my undergrad, finally I got my bachelor degree of Computer Science. The new journey as a professional programmer has started! Looking forward into any kinds of job waiting ahead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-1171770217348342288?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/1171770217348342288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2012/04/fresh-graduate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/1171770217348342288?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/1171770217348342288?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2012/04/fresh-graduate.html' title='Fresh graduate'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkINQnw-eCp7ImA9Wx9UE0k.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-6760078469066251022</id><published>2011-02-10T23:36:00.000+09:00</published><updated>2011-02-10T23:36:33.250+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T23:36:33.250+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SPOJ'/><category scheme='http://www.blogger.com/atom/ns#' term='FCTRL2'/><title>SPOJ, FCTRL2, Small Factorials</title><content type='html'>SPOJ Problem Set (classical)&lt;br /&gt;
&lt;br /&gt;
24. Small factorials&lt;br /&gt;
&lt;br /&gt;
Problem code: FCTRL2&lt;br /&gt;
&lt;br /&gt;
You are asked to calculate factorials of some small positive integers.&lt;br /&gt;
&lt;br /&gt;
Input&lt;br /&gt;
&lt;br /&gt;
An integer t, 1&amp;lt;=t&amp;lt;=100, denoting the number of testcases, followed by t lines, each containing a single integer n, 1&amp;lt;=n&amp;lt;=100.&lt;br /&gt;
&lt;br /&gt;
Output&lt;br /&gt;
&lt;br /&gt;
For each integer n given at input, display a line with the value of n!&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
Sample input:&lt;br /&gt;
4&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
5&lt;br /&gt;
3&lt;br /&gt;
Sample output:&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
120&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;struct Bigint {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;string a;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int sign;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;Bigint() {}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;Bigint( string b ) { (*this) = b; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int size() { return a.size(); }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint inverseSign() { sign *= -1; return (*this); }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint normalize( int newSign ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sign = newSign;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt; 0 &amp;amp;&amp;amp; a[i] == '0'; i-- ) a.erase(a.begin() + i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( a.size() == 1 &amp;amp;&amp;amp; a[0] == '0' ) sign = 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (*this);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;void operator = ( string b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a = b[0] == '-' ? b.substr(1) : b;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reverse( a.begin(), a.end() );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this-&amp;gt;normalize( b[0] == '-' ? -1 : 1 );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;bool operator &amp;lt; ( const Bigint &amp;amp;b ) const {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( a.size() != b.a.size() ) return a.size() &amp;lt; b.a.size();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt;= 0; i-- ) if( a[i] != b.a[i] ) return a[i] &amp;lt; b.a[i];&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator + ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( sign != b.sign ) return (*this) - b.inverseSign();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = 0, carry = 0; i &amp;lt; (int)a.size() || i &amp;lt; (int)b.size() || carry; i++ ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;carry += (i &amp;lt; (int)a.size() ? a[i] - 48 : 0) + (i &amp;lt; (int)b.a.size() ? b.a[i] - 48 : 0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.a += (carry % 10 + 48);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;carry /= 10;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c.normalize(sign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator - ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( sign != b.sign ) return (*this) + b.inverseSign();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( (*this) &amp;lt; b ) return (b - (*this)).inverseSign();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = 0, borrow = 0; i &amp;lt; (int)a.size(); i++ ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;borrow = a[i] - borrow - (i &amp;lt; b.size() ? b.a[i] : 48);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.a += borrow &amp;gt;= 0 ? borrow + 48 : borrow + 58;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;borrow = borrow &amp;gt;= 0 ? 0 : 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c.normalize(sign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator * ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c("0");&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = 0, k = a[i]; i &amp;lt; (int)a.size(); i++, k = a[i] ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while(k-- - 48) c = c + b;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b.a.insert(b.a.begin(), '0');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c.normalize(sign * b.sign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator / ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( b.size() == 1 &amp;amp;&amp;amp; b.a[0] == '0' ) b.a[0] /= ( b.a[0] - 48 ) ;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c("0"), d;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int j = 0; j &amp;lt; (int)a.size(); j++ ) d.a += "0";&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int dSign = sign * b.sign; b.sign = 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt;= 0; i-- ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.a.insert( c.a.begin(), '0');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c = c + a.substr( i, 1 );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while( !( c &amp;lt; b ) ) c = c - b, d.a[i]++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return d.normalize(dSign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator % ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( b.size() == 1 &amp;amp;&amp;amp; b.a[0] == '0' ) b.a[0] /= ( b.a[0] - 48 ) ;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c("0");&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int cSign = sign * b.sign; b.sign = 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt;= 0; i-- ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.a.insert( c.a.begin(), '0');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c = c + a.substr( i, 1 );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while( !( c &amp;lt; b ) ) c = c - b;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c.normalize(cSign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;void print() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( sign == -1 ) putchar('-');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt;= 0; i-- ) putchar(a[i]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Bigint fact(Bigint n){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;string s = n.a;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;if(s=="1")return Bigint("1");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return n*fact(n-Bigint("1"));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int nTests;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;scanf("%d ",&amp;amp;nTests);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;repe(test,1,nTests) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;//if (1) fprintf(stderr,"Case %d/%d",test,nTests);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint n;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;string s;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cin &amp;gt;&amp;gt;s;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;n = s;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;n = fact(n);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;n.print();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-6760078469066251022?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/6760078469066251022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-fctrl2-small-factorials.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/6760078469066251022?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/6760078469066251022?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-fctrl2-small-factorials.html' title='SPOJ, FCTRL2, Small Factorials'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>2</thr:total></entry><entry gd:etag='W/&quot;AkQNSX09eCp7ImA9Wx9UE0k.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-3322700320520992017</id><published>2011-02-10T23:33:00.000+09:00</published><updated>2011-02-10T23:33:18.360+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T23:33:18.360+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SPOJ'/><category scheme='http://www.blogger.com/atom/ns#' term='NSTEPS'/><title>SPOJ, NSTEPS, Number Steps</title><content type='html'>SPOJ Problem Set (classical)&lt;br /&gt;
&lt;br /&gt;
1112. Number Steps&lt;br /&gt;
&lt;br /&gt;
Problem code: NSTEPS&lt;br /&gt;
&lt;br /&gt;
Starting from point (0,0) on a plane, we have written all non-negative integers 0, 1, 2,... as shown in the figure. For example, 1, 2, and 3 has been written at points (1,1), (2,0), and (3, 1) respectively and this pattern has continued.&lt;br /&gt;
&lt;br /&gt;
You are to write a program that reads the coordinates of a point (x, y), and writes the number (if any) that has been written at that point. (x, y) coordinates in the input are in the range 0...10000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Input&lt;br /&gt;
&lt;br /&gt;
The first line of the input is N, the number of test cases for this problem. In each of the N following lines, there is x, and y representing the coordinates (x, y) of a point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Output&lt;br /&gt;
&lt;br /&gt;
For each point in the input, write the number written at that point or write No Number if there is none.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
Input:&lt;br /&gt;
3&lt;br /&gt;
4 2&lt;br /&gt;
6 6&lt;br /&gt;
3 4&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
6&lt;br /&gt;
12&lt;br /&gt;
No Number&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int nTests;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;scanf("%d ",&amp;amp;nTests);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;repe(test,1,nTests) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int a,b;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cin&amp;gt;&amp;gt;a&amp;gt;&amp;gt;b;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;if(a!=b&amp;amp;&amp;amp;a-b!=2){cout&amp;lt;&amp;lt;"No Number\n";continue;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;if(a%2==0&amp;amp;&amp;amp;b%2==0)cout&amp;lt;&amp;lt;a+b&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;else cout&amp;lt;&amp;lt;a+b-1&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-3322700320520992017?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/3322700320520992017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-nsteps-number-steps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/3322700320520992017?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/3322700320520992017?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-nsteps-number-steps.html' title='SPOJ, NSTEPS, Number Steps'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkQAQnk8eyp7ImA9Wx9UE0k.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-8511872621675758224</id><published>2011-02-10T23:32:00.000+09:00</published><updated>2011-02-10T23:32:23.773+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T23:32:23.773+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SPOJ'/><category scheme='http://www.blogger.com/atom/ns#' term='TOANDFRO'/><title>SPOJ TOANDFRO, To and Fro</title><content type='html'>SPOJ Problem Set (classical)&lt;br /&gt;
&lt;br /&gt;
400. To and Fro&lt;br /&gt;
&lt;br /&gt;
Problem code: TOANDFRO&lt;br /&gt;
&lt;br /&gt;
Mo and Larry have devised a way of encrypting messages. They first decide secretly on the number of columns and write the message (letters only) down the columns, padding with extra random letters so as to make a rectangular array of letters. For example, if the message is “There’s no place like home on a snowy night” and there are five columns, Mo would write down&lt;br /&gt;
&lt;br /&gt;
t o i o y&lt;br /&gt;
h p k n n&lt;br /&gt;
e l e a i&lt;br /&gt;
r a h s g&lt;br /&gt;
e c o n h&lt;br /&gt;
s e m o t&lt;br /&gt;
n l e w x&lt;br /&gt;
Note that Mo includes only letters and writes them all in lower case. In this example, Mo used the character ‘x’ to pad the message out to make a rectangle, although he could have used any letter. Mo then sends the message to Larry by writing the letters in each row, alternating left-to-right and right-to-left. So, the above would be encrypted as&lt;br /&gt;
&lt;br /&gt;
toioynnkpheleaigshareconhtomesnlewx&lt;br /&gt;
Your job is to recover for Larry the original message (along with any extra padding letters) from the encrypted one.&lt;br /&gt;
&lt;br /&gt;
Input&lt;br /&gt;
&lt;br /&gt;
There will be multiple input sets. Input for each set will consist of two lines. The first line will contain an integer in the range 2...20 indicating the number of columns used. The next line is a string of up to 200 lower case letters. The last input set is followed by a line containing a single 0, indicating end of input.&lt;br /&gt;
&lt;br /&gt;
Output&lt;br /&gt;
&lt;br /&gt;
Each input set should generate one line of output, giving the original plaintext message, with no spaces.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
Input:&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
toioynnkpheleaigshareconhtomesnlewx&lt;br /&gt;
3&lt;br /&gt;
ttyohhieneesiaabss&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
theresnoplacelikehomeonasnowynightx&lt;br /&gt;
thisistheeasyoneab&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
int main(){&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int cl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;cin&amp;gt;&amp;gt;cl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;while(cl){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;string s,t,temp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cin&amp;gt;&amp;gt;s;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int k=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;rep(i,0,sz(s)/cl){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;rep(j,0,cl){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;temp+=s[k++];&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;if(i%2)reverse(all(temp));&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;t+=temp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;temp.clear();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;rep(i,0,cl){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;rep(j,0,sz(t)/cl){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;cout&amp;lt;&amp;lt;t[i+j*cl];&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cin&amp;gt;&amp;gt;cl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-8511872621675758224?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/8511872621675758224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-toandfro-to-and-fro.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/8511872621675758224?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/8511872621675758224?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-toandfro-to-and-fro.html' title='SPOJ TOANDFRO, To and Fro'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkUMRXw_eCp7ImA9Wx9UE0k.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-8283235357100214429</id><published>2011-02-10T23:31:00.000+09:00</published><updated>2011-02-10T23:31:24.240+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T23:31:24.240+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SPOJ'/><category scheme='http://www.blogger.com/atom/ns#' term='JULKA'/><title>SPOJ JULKA, Julka</title><content type='html'>SPOJ Problem Set (classical)&lt;br /&gt;
&lt;br /&gt;
54. Julka&lt;br /&gt;
&lt;br /&gt;
Problem code: JULKA&lt;br /&gt;
&lt;br /&gt;
Julka surprised her teacher at preschool by solving the following riddle:&lt;br /&gt;
&lt;br /&gt;
Klaudia and Natalia have 10 apples together, but Klaudia has two apples more than Natalia. How many apples does each of he girls have?&lt;br /&gt;
&lt;br /&gt;
Julka said without thinking: Klaudia has 6 apples and Natalia 4 apples. The teacher tried to check if Julka's answer wasn't accidental and repeated the riddle every time increasing the numbers. Every time Julka answered correctly. The surprised teacher wanted to continue questioning Julka, but with big numbers she could't solve the riddle fast enough herself. Help the teacher and write a program which will give her the right answers.&lt;br /&gt;
&lt;br /&gt;
Task&lt;br /&gt;
&lt;br /&gt;
Write a program which&lt;br /&gt;
&lt;br /&gt;
reads from standard input the number of apples the girls have together and how many more apples Klaudia has,&lt;br /&gt;
counts the number of apples belonging to Klaudia and the number of apples belonging to Natalia,&lt;br /&gt;
writes the outcome to standard output&lt;br /&gt;
Input&lt;br /&gt;
&lt;br /&gt;
Ten test cases (given one under another, you have to process all!). Every test case consists of two lines. The first line says how many apples both girls have together. The second line says how many more apples Klaudia has. Both numbers are positive integers. It is known that both girls have no more than 10100 (1 and 100 zeros) apples together. As you can see apples can be very small.&lt;br /&gt;
&lt;br /&gt;
Output&lt;br /&gt;
&lt;br /&gt;
For every test case your program should output two lines. The first line should contain the number of apples belonging to Klaudia. The second line should contain the number of apples belonging to Natalia.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
Input:&lt;br /&gt;
10&lt;br /&gt;
2&lt;br /&gt;
[and 9 test cases more]&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
6&lt;br /&gt;
4&lt;br /&gt;
[and 9 test cases more]&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;deque&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
#include &amp;lt;map&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;cctype&amp;gt;&lt;br /&gt;
#include &amp;lt;cmath&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;bitset&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
typedef long long int lli;&lt;br /&gt;
typedef long unsigned long llu;&lt;br /&gt;
&lt;br /&gt;
//definitions&lt;br /&gt;
#define mem_prep(varx) memset(varx,0,sizeof(varx))&lt;br /&gt;
#define all(x) &amp;nbsp;(x).begin(),(x).end()&lt;br /&gt;
#define pb push_back&lt;br /&gt;
#define mp make_pair&lt;br /&gt;
#define sz(v) ((int)(v).size())&lt;br /&gt;
#define rep(i,a,n) for(int i=(a);i&amp;lt;(n);i++) &lt;br /&gt;
#define repe(i,a,n) &amp;nbsp;for(int i=(a);i&amp;lt;=(n);i++)&lt;br /&gt;
#define forsz(i,a,v) rep(i,a,sz(v))&lt;br /&gt;
#define repsz(i,v) rep(i,0,sz(v))&lt;br /&gt;
#define vi vector&amp;lt;int&amp;gt;&lt;br /&gt;
#define vs vector&amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void prepare( )&lt;br /&gt;
{&lt;br /&gt;
#ifdef WIN32&lt;br /&gt;
&amp;nbsp;&amp;nbsp;freopen("input.txt", "r", stdin);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;freopen("output.txt", "w", stdout);&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct Bigint {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;string a;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int sign;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;Bigint() {}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;Bigint( string b ) { (*this) = b; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int size() { return a.size(); }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint inverseSign() { sign *= -1; return (*this); }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint normalize( int newSign ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sign = newSign;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt; 0 &amp;amp;&amp;amp; a[i] == '0'; i-- ) a.erase(a.begin() + i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( a.size() == 1 &amp;amp;&amp;amp; a[0] == '0' ) sign = 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (*this);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;void operator = ( string b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a = b[0] == '-' ? b.substr(1) : b;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reverse( a.begin(), a.end() );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this-&amp;gt;normalize( b[0] == '-' ? -1 : 1 );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;bool operator &amp;lt; ( const Bigint &amp;amp;b ) const {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( a.size() != b.a.size() ) return a.size() &amp;lt; b.a.size();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt;= 0; i-- ) if( a[i] != b.a[i] ) return a[i] &amp;lt; b.a[i];&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator + ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( sign != b.sign ) return (*this) - b.inverseSign();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = 0, carry = 0; i &amp;lt; (int)a.size() || i &amp;lt; (int)b.size() || carry; i++ ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;carry += (i &amp;lt; (int)a.size() ? a[i] - 48 : 0) + (i &amp;lt; (int)b.a.size() ? b.a[i] - 48 : 0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.a += (carry % 10 + 48);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;carry /= 10;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c.normalize(sign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator - ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( sign != b.sign ) return (*this) + b.inverseSign();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( (*this) &amp;lt; b ) return (b - (*this)).inverseSign();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = 0, borrow = 0; i &amp;lt; (int)a.size(); i++ ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;borrow = a[i] - borrow - (i &amp;lt; b.size() ? b.a[i] : 48);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.a += borrow &amp;gt;= 0 ? borrow + 48 : borrow + 58;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;borrow = borrow &amp;gt;= 0 ? 0 : 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c.normalize(sign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator * ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c("0");&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = 0, k = a[i]; i &amp;lt; (int)a.size(); i++, k = a[i] ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while(k-- - 48) c = c + b;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b.a.insert(b.a.begin(), '0');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c.normalize(sign * b.sign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator / ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( b.size() == 1 &amp;amp;&amp;amp; b.a[0] == '0' ) b.a[0] /= ( b.a[0] - 48 ) ;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c("0"), d;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int j = 0; j &amp;lt; (int)a.size(); j++ ) d.a += "0";&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int dSign = sign * b.sign; b.sign = 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt;= 0; i-- ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.a.insert( c.a.begin(), '0');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c = c + a.substr( i, 1 );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while( !( c &amp;lt; b ) ) c = c - b, d.a[i]++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return d.normalize(dSign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint operator % ( Bigint b ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( b.size() == 1 &amp;amp;&amp;amp; b.a[0] == '0' ) b.a[0] /= ( b.a[0] - 48 ) ;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bigint c("0");&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int cSign = sign * b.sign; b.sign = 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt;= 0; i-- ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.a.insert( c.a.begin(), '0');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c = c + a.substr( i, 1 );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while( !( c &amp;lt; b ) ) c = c - b;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c.normalize(cSign);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;void print() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( sign == -1 ) putchar('-');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( int i = a.size() - 1; i &amp;gt;= 0; i-- ) putchar(a[i]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;string s,y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;while(cin &amp;gt;&amp;gt;s&amp;gt;&amp;gt;y){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint K,N,n,t;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint two("2");&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;n=s,t=y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;K=N=n/two;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Bigint res=t-t/two;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;N=N-t/two;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;K=K+res;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;K.print();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;N.print();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-8283235357100214429?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/8283235357100214429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-julka-julka.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/8283235357100214429?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/8283235357100214429?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-julka-julka.html' title='SPOJ JULKA, Julka'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkUGQnw5cSp7ImA9Wx9UE0k.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-1443931824132248589</id><published>2011-02-10T23:30:00.002+09:00</published><updated>2011-02-10T23:30:23.229+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T23:30:23.229+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SPOJ'/><category scheme='http://www.blogger.com/atom/ns#' term='FCTRL'/><title>SPOJ FCTRL, Factorial</title><content type='html'>SPOJ Problem Set (classical)&lt;br /&gt;
&lt;br /&gt;
11. Factorial&lt;br /&gt;
&lt;br /&gt;
Problem code: FCTRL&lt;br /&gt;
&lt;br /&gt;
The most important part of a GSM network is so called Base Transceiver Station (BTS). These transceivers form the areas called cells (this term gave the name to the cellular phone) and every phone connects to the BTS with the strongest signal (in a little simplified view). Of course, BTSes need some attention and technicians need to check their function periodically.&lt;br /&gt;
&lt;br /&gt;
ACM technicians faced a very interesting problem recently. Given a set of BTSes to visit, they needed to find the shortest path to visit all of the given points and return back to the central company building. Programmers have spent several months studying this problem but with no results. They were unable to find the solution fast enough. After a long time, one of the programmers found this problem in a conference article. Unfortunately, he found that the problem is so called "Travelling Salesman Problem" and it is very hard to solve. If we have N BTSes to be visited, we can visit them in any order, giving us N! possibilities to examine. The function expressing that number is called factorial and can be computed as a product 1.2.3.4....N. The number is very high even for a relatively small N.&lt;br /&gt;
&lt;br /&gt;
The programmers understood they had no chance to solve the problem. But because they have already received the research grant from the government, they needed to continue with their studies and produce at least some results. So they started to study behaviour of the factorial function.&lt;br /&gt;
&lt;br /&gt;
For example, they defined the function Z. For any positive integer N, Z(N) is the number of zeros at the end of the decimal form of number N!. They noticed that this function never decreases. If we have two numbers N1&lt;n2, "lose"="" &lt;="Z(N2)." a="" and="" any="" because="" by="" can="" computer="" determine="" efficiently.&lt;br="" function="" get="" interesting,="" is="" it="" its="" multiplying="" need="" never="" new="" number.="" only="" positive="" program="" so="" that="" the="" then="" trailing="" value="" very="" we="" z(n1)="" z="" zero="" zeros.=""&gt; &lt;br /&gt;
Input&lt;br /&gt;
&lt;br /&gt;
There is a single positive integer T on the first line of input (equal to about 100000). It stands for the number of numbers to follow. Then there are T lines, each containing exactly one positive integer number N, 1 &amp;nbsp;&amp;lt;= N &amp;lt;= 1000000000.&lt;br /&gt;
&lt;br /&gt;
Output&lt;br /&gt;
&lt;br /&gt;
For every number N, output a single line containing the single non-negative integer Z(N).&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
Sample Input:&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
3&lt;br /&gt;
60&lt;br /&gt;
100&lt;br /&gt;
1024&lt;br /&gt;
23456&lt;br /&gt;
8735373&lt;br /&gt;
Sample Output:&lt;br /&gt;
&lt;br /&gt;
0&lt;br /&gt;
14&lt;br /&gt;
24&lt;br /&gt;
253&lt;br /&gt;
5861&lt;br /&gt;
2183837&lt;br /&gt;
&lt;/n2,&gt;&lt;br /&gt;
&lt;n2, "lose"="" &lt;="Z(N2)." a="" and="" any="" because="" by="" can="" computer="" determine="" efficiently.&lt;br="" function="" get="" interesting,="" is="" it="" its="" multiplying="" need="" never="" new="" number.="" only="" positive="" program="" so="" that="" the="" then="" trailing="" value="" very="" we="" z(n1)="" z="" zero="" zeros.=""&gt;&lt;/n2,&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
int zeta(int n) {&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;int ret = 0;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;for (int p = 5; p &amp;lt;= n; p*=5)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;		&lt;/span&gt;ret += n/p;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int nTests;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;scanf("%d ",&amp;amp;nTests);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;repe(test,1,nTests) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;//if (1) fprintf(stderr,"Case %d/%d",test,nTests);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int n;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cin &amp;gt;&amp;gt; n;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; zeta(n) &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-1443931824132248589?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/1443931824132248589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-fctrl-factorial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/1443931824132248589?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/1443931824132248589?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-fctrl-factorial.html' title='SPOJ FCTRL, Factorial'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DU4CSXY6fip7ImA9Wx9UE0k.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-7423564369511777557</id><published>2011-02-10T23:26:00.000+09:00</published><updated>2011-02-10T23:26:08.816+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T23:26:08.816+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SPOJ'/><category scheme='http://www.blogger.com/atom/ns#' term='ADDREV'/><title>SPOJ ADDREV, Adding Reversed Numbers</title><content type='html'>SPOJ Problem Set (classical)&lt;br /&gt;
&lt;br /&gt;
42. Adding Reversed Numbers&lt;br /&gt;
&lt;br /&gt;
Problem code: ADDREV&lt;br /&gt;
&lt;br /&gt;
The Antique Comedians of Malidinesia prefer comedies to tragedies. Unfortunately, most of the ancient plays are tragedies. Therefore the dramatic advisor of ACM has decided to transfigure some tragedies into comedies. Obviously, this work is very hard because the basic sense of the play must be kept intact, although all the things change to their opposites. For example the numbers: if any number appears in the tragedy, it must be converted to its reversed form before being accepted into the comedy play.&lt;br /&gt;
&lt;br /&gt;
Reversed number is a number written in arabic numerals but the order of digits is reversed. The first digit becomes last and vice versa. For example, if the main hero had 1245 strawberries in the tragedy, he has 5421 of them now. Note that all the leading zeros are omitted. That means if the number ends with a zero, the zero is lost by reversing (e.g. 1200 gives 21). Also note that the reversed number never has any trailing zeros.&lt;br /&gt;
&lt;br /&gt;
ACM needs to calculate with reversed numbers. Your task is to add two reversed numbers and output their reversed sum. Of course, the result is not unique because any particular number is a reversed form of several numbers (e.g. 21 could be 12, 120 or 1200 before reversing). Thus we must assume that no zeros were lost by reversing (e.g. assume that the original number was 12).&lt;br /&gt;
&lt;br /&gt;
Input&lt;br /&gt;
&lt;br /&gt;
The input consists of N cases (equal to about 10000). The first line of the input contains only positive integer N. Then follow the cases. Each case consists of exactly one line with two positive integers separated by space. These are the reversed numbers you are to add.&lt;br /&gt;
&lt;br /&gt;
Output&lt;br /&gt;
&lt;br /&gt;
For each case, print exactly one line containing only one integer - the reversed sum of two reversed numbers. Omit any leading zeros in the output.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
Sample input: &lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
24 1&lt;br /&gt;
4358 754&lt;br /&gt;
305 794&lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&lt;br /&gt;
34&lt;br /&gt;
1998&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;div&gt;string rev(string s){&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;int j=s.size()-1;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;rep(i,0,(s.size()/2)){&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;char temp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;temp=s[i];&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;s[i]=s[j];&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;s[j]=temp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;j--;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;return s;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;int main(){&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;int nTests;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;scanf("%d ",&amp;amp;nTests);&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;repe(test,1,nTests) {&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;string x,y;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int xx,yy;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cin&amp;gt;&amp;gt;x&amp;gt;&amp;gt;y;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;x=rev(x);&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;y=rev(y);&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;xx=atoi(x.c_str());&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;yy=atoi(y.c_str());&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int res=xx+yy;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ostringstream t;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;t &amp;lt;&amp;lt; res;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout&amp;lt;&amp;lt;atoi(rev(t.str()).c_str())&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;return 0;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-7423564369511777557?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/7423564369511777557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-addrev-adding-reversed-numbers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/7423564369511777557?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/7423564369511777557?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/spoj-addrev-adding-reversed-numbers.html' title='SPOJ ADDREV, Adding Reversed Numbers'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CU8EQHY5fCp7ImA9Wx9UE00.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-4809380670868484883</id><published>2011-02-10T11:10:00.000+09:00</published><updated>2011-02-10T11:10:01.824+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T11:10:01.824+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='148'/><category scheme='http://www.blogger.com/atom/ns#' term='SRM'/><category scheme='http://www.blogger.com/atom/ns#' term='TopCoder'/><category scheme='http://www.blogger.com/atom/ns#' term='DIV II'/><title>TopCoder SRM 148, DIV II, MNS</title><content type='html'>Problem Statement&lt;br /&gt;
&lt;br /&gt;
9 numbers need to be arranged in a magic number square. A magic number square is a square of numbers that is arranged such that every row and column has the same sum. For example:&lt;br /&gt;
&lt;br /&gt;
1 2 3&lt;br /&gt;
3 2 1&lt;br /&gt;
2 2 2&lt;br /&gt;
Create a class MNS containing a method combos which takes as an argument a int[] numbers and returns the number of distinct ways those numbers can be arranged in a magic number square. Two magic number squares are distinct if they differ in value at one or more positions. For example, there is only one magic number square that can be made of 9 instances of the same number.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
int func(vector &amp;lt;int&amp;gt; num){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int mgnum=num[0]+num[1]+num[2];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int k=3;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;rep(i,0,2){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int temp=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;rep(j,0,3){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;temp+=num[k+j];&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;if (mgnum!=temp)return 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;k+=3;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;k=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;rep(i,0,2){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int temp=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;rep(j,0,3){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;temp+=num[k+3*j];&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;if(mgnum!=temp)return 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;k+=1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MNS {&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int combos(vector &amp;lt;int&amp;gt; numbers) {&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;sort(all(numbers));&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;int ans=0;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;ans+=func(numbers);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;while(next_permutation(all(numbers))){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;ans+=func(numbers);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;return ans;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;br /&gt;
};&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-4809380670868484883?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/4809380670868484883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-148-div-ii-mns.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/4809380670868484883?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/4809380670868484883?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-148-div-ii-mns.html' title='TopCoder SRM 148, DIV II, MNS'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUABRX07eSp7ImA9Wx9UE00.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-6197592497438833095</id><published>2011-02-10T11:09:00.000+09:00</published><updated>2011-02-10T11:09:14.301+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T11:09:14.301+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='148'/><category scheme='http://www.blogger.com/atom/ns#' term='SRM'/><category scheme='http://www.blogger.com/atom/ns#' term='TopCoder'/><category scheme='http://www.blogger.com/atom/ns#' term='DIV II'/><title>TopCoder SRM 148, DIV II, DivisorDigits</title><content type='html'>Problem Statement&lt;br /&gt;
&lt;br /&gt;
Create a class DivDigits containing a method howMany which takes as an argument an int number and returns how many digits in number that number itself is divisible by. Count all occurences of such digits in the number, not just the first. See examples for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
class DivisorDigits {&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int howMany(int number) {&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;ostringstream ss;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;string s;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;int ans=0;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;ss &amp;lt;&amp;lt; number;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;s = ss.str();&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;repsz(i,s){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;if(!(s[i]-'0')){continue;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;if(number%(s[i]-'0')==0)ans++;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;return ans;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-6197592497438833095?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/6197592497438833095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-148-div-ii-divisordigits.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/6197592497438833095?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/6197592497438833095?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-148-div-ii-divisordigits.html' title='TopCoder SRM 148, DIV II, DivisorDigits'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUAERX87fCp7ImA9Wx9UE00.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-5035431869015575135</id><published>2011-02-10T11:08:00.000+09:00</published><updated>2011-02-10T11:08:24.104+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-10T11:08:24.104+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='148'/><category scheme='http://www.blogger.com/atom/ns#' term='SRM'/><category scheme='http://www.blogger.com/atom/ns#' term='TopCoder'/><category scheme='http://www.blogger.com/atom/ns#' term='DIV II'/><title>TopCoder SRM 148, DIV II, CeyKaps</title><content type='html'>Problem Statement&lt;br /&gt;
&lt;br /&gt;
The keycaps on a keyboard have been switched around, and the user is now trying to remember what he was trying to type.&lt;br /&gt;
&lt;br /&gt;
Create a class CeyKaps containing the method decipher that takes a String typed, representing the visible message on the screen, and a String[] switched, representing the keycap switches. The method should return the original intended message (what keys the user thought he was pressing).&lt;br /&gt;
&lt;br /&gt;
A keycap can be switched around more than once. For example, if someone switched around 'A' and 'S', then switched around 'S' and 'D', then 'D' would be where 'A' originally was, 'S' where 'D' was, and 'A' where 'S' was.&lt;br /&gt;
&lt;br /&gt;
The elements of switches will be formatted as (quotes added for clarity) "*:*", where the *'s represent the keycaps to be switched. The above example would be represented as: {"A:S","S:D","D:A"}, or alternately as {"S:A","D:S","A:D"} or any other such combination. The order of the keycaps doesn't matter, but the order of the switches does.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
class CeyKaps {&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;string decipher(string typed, vector &amp;lt;string&amp;gt; switches) {&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;vector &amp;lt; pair&amp;lt;char,char&amp;gt; &amp;gt; keys;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;repsz(i, switches){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;char x,y;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;x=switches[i][0];&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;y=switches[i][2];&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;keys.pb(mp(x,y));&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;repsz(i,keys){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;repsz(j,typed){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(typed[j]==keys[i].first)typed[j]=keys[i].second;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if(typed[j]==keys[i].second)typed[j]=keys[i].first;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;return typed;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-5035431869015575135?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/5035431869015575135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-148-div-ii-ceykaps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/5035431869015575135?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/5035431869015575135?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-148-div-ii-ceykaps.html' title='TopCoder SRM 148, DIV II, CeyKaps'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0UCQX84fyp7ImA9Wx9UEUU.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-6202345420682104987</id><published>2011-02-09T02:14:00.000+09:00</published><updated>2011-02-09T02:14:20.137+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-09T02:14:20.137+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='Tool'/><category scheme='http://www.blogger.com/atom/ns#' term='Keylogger'/><title>Just Another Hacking Tool #2</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In my last post on &lt;a href="http://yuriardila.blogspot.com/2011/02/just-another-hacking-tool-1.html"&gt;Just Another Hacking Tool #1&lt;/a&gt;, I mentioned a lot about references of basic hacking tool like phishing or penetrating a vulnerable server. And also in that post I mentioned that after reading from the websites (&lt;a href="http://www.hackpconline.com/"&gt;hackpconline&lt;/a&gt;,&lt;a href="http://vxchaos.official.ws/"&gt; vxchaos&lt;/a&gt;, &lt;a href="http://www.metasploit.com/framework/modules/"&gt;metasploit&lt;/a&gt;), I was able to make myself a keylogger. This video will show what I did :D&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I made this keylogger with C++, implemented with the usage of&amp;nbsp;&lt;a href="http://www.openssl.org/"&gt;openssl&lt;/a&gt;, Windows Socket Programming and GUI programming.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Well this is my first self-made keylogger, and I do think that it's &lt;b&gt;99% FUD&lt;/b&gt; (The processing will still be shown in task-manager, and at this point I think all .exe programs cannot run without being scheduled by task manager), but this keylogger is for Windows users only :(&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Anyway, this keylogger has the ability to take log characters by characters the victim typed, and by default it will be sent to a defined e-mail in the program. Currently this guy can take around 80 length of characters the victim typed in, but of course It can be easily modified within a second!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The link below shows the video of my keylogger, which I made by using &lt;a href="http://www.techsmith.com/jing/"&gt;jing&lt;/a&gt;, and it's in swf format and I don't know how to insert music in swf file, so, stick with it :D&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The video is &lt;a href="http://www.screencast.com/t/sQQkCT4C1At"&gt;here&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;ps: dont spam my email! and if you want me to make one for you, PM me :D&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-6202345420682104987?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/6202345420682104987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/just-another-hacking-tool-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/6202345420682104987?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/6202345420682104987?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/just-another-hacking-tool-2.html' title='Just Another Hacking Tool #2'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEYFQH45fyp7ImA9Wx9UEUo.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-3251361203704673759</id><published>2011-02-08T23:41:00.002+09:00</published><updated>2011-02-08T23:41:51.027+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-08T23:41:51.027+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SRM'/><category scheme='http://www.blogger.com/atom/ns#' term='TopCoder'/><category scheme='http://www.blogger.com/atom/ns#' term='DIV II'/><category scheme='http://www.blogger.com/atom/ns#' term='147'/><title>TopCoder SRM 147, DIV II, PeopleCircle</title><content type='html'>Problem Statement&lt;br /&gt;
&lt;br /&gt;
There are numMales males and numFemales females arranged in a circle. Starting from a given point, you count clockwise and remove the K'th person from the circle (where K=1 is the person at the current point, K=2 is the next person in the clockwise direction, etc...). After removing that person, the next person in the clockwise direction becomes the new starting point. After repeating this procedure numFemales times, there are no females left in the circle.&lt;br /&gt;
&lt;br /&gt;
Given numMales, numFemales and K, your task is to return what the initial arrangement of people in the circle must have been, starting from the starting point and in clockwise order.&lt;br /&gt;
&lt;br /&gt;
For example, if there are 5 males and 3 females and you remove every second person, your return String will be "MFMFMFMM".&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
class PeopleCircle {&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public:&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;string order(int m, int f, int K) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int tot=m+f;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int flag[tot];&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;memset(flag,1,sizeof(flag));&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;string human;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;rep(i,0,tot)human+='M';&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int now=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;rep(i,0,f){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;for(int j =0;j&amp;lt;K-1;){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if(now&amp;gt;=tot)now=0;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if(flag[now]){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;now++;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;while(!flag[now])now++;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;j++;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;else while(!flag[now])now++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;flag[now]=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;while(!flag[now])now++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;repsz(i,human)if(!flag[i])human[i]='F';&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;return human;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
};&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-3251361203704673759?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/3251361203704673759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-147-div-ii-peoplecircle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/3251361203704673759?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/3251361203704673759?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-147-div-ii-peoplecircle.html' title='TopCoder SRM 147, DIV II, PeopleCircle'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEcAQns4eSp7ImA9Wx9UEUo.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-9121795164259299393</id><published>2011-02-08T23:40:00.000+09:00</published><updated>2011-02-08T23:40:43.531+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-08T23:40:43.531+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SRM'/><category scheme='http://www.blogger.com/atom/ns#' term='TopCoder'/><category scheme='http://www.blogger.com/atom/ns#' term='DIV II'/><category scheme='http://www.blogger.com/atom/ns#' term='147'/><title>TopCoder SRM 147, DIV II, CCipher</title><content type='html'>Problem Statement&lt;br /&gt;
&lt;br /&gt;
Julius Caesar used a system of cryptography, now known as Caesar Cipher, which shifted each letter 2 places further through the alphabet (e.g. 'A' shifts to 'C', 'R' shifts to 'T', etc.). At the end of the alphabet we wrap around, that is 'Y' shifts to 'A'.&lt;br /&gt;
&lt;br /&gt;
We can, of course, try shifting by any number. Given an encoded text and a number of places to shift, decode it.&lt;br /&gt;
&lt;br /&gt;
For example, "TOPCODER" shifted by 2 places will be encoded as "VQREQFGT". In other words, if given (quotes for clarity) "VQREQFGT" and 2 as input, you will return "TOPCODER". See example 0 below.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;deque&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
#include &amp;lt;map&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;cctype&amp;gt;&lt;br /&gt;
#include &amp;lt;cmath&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;bitset&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
typedef long long int lli;&lt;br /&gt;
typedef long unsigned long llu;&lt;br /&gt;
&lt;br /&gt;
//definitions&lt;br /&gt;
#define mem_prep(varx) memset(varx,0,sizeof(varx))&lt;br /&gt;
#define all(x) &amp;nbsp;(x).begin(),(x).end()&lt;br /&gt;
#define pb push_back&lt;br /&gt;
#define mp make_pair&lt;br /&gt;
#define sz(v) ((int)(v).size())&lt;br /&gt;
#define rep(i,a,n) for(int i=(a);i&amp;lt;(n);i++) &lt;br /&gt;
#define repe(i,a,n) &amp;nbsp;for(int i=(a);i&amp;lt;=(n);i++)&lt;br /&gt;
#define forsz(i,a,v) rep(i,a,sz(v))&lt;br /&gt;
#define repsz(i,v) rep(i,0,sz(v))&lt;br /&gt;
#define vi vector&amp;lt;int&amp;gt;&lt;br /&gt;
#define vs vector&amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class CCipher {&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;string decode(string s, int shift) {&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;repsz(i, s){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;s[i]-=shift;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;if(s[i]&amp;lt;'A')s[i]+=26;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;return s;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;br /&gt;
};&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-9121795164259299393?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/9121795164259299393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-147-div-ii-ccipher.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/9121795164259299393?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/9121795164259299393?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-147-div-ii-ccipher.html' title='TopCoder SRM 147, DIV II, CCipher'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CE4ERnoyfyp7ImA9Wx9UEEU.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-2702928200135209519</id><published>2011-02-07T21:48:00.000+09:00</published><updated>2011-02-07T21:48:27.497+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-07T21:48:27.497+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Intro'/><title>Introduction: yuriardila</title><content type='html'>Ah, I forgot to introduce myself :D&lt;br /&gt;
&lt;br /&gt;
Like the blog's title, yes, it's my name. yuriardila.&amp;nbsp;And I am currently 21, one step closer to becoming an adult :D&amp;nbsp;Well, I currently live in Japan, 3rd year of Ritsumeikan University, majoring in Computer Science. Not much to tell about my college since I think the education is not too good --no offense :p However, I do learn many stuffs here, and also I make many Japanese friends, and they are all so kind and, unique? And most of them are hardworkers, so you too, better learn from the Japanese!&lt;br /&gt;
&lt;br /&gt;
That's it for my intro!&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-2702928200135209519?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/2702928200135209519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/introduction-yuriardila.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/2702928200135209519?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/2702928200135209519?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/introduction-yuriardila.html' title='Introduction: yuriardila'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkANR3YzeCp7ImA9Wx9UEEU.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-6188077023531941852</id><published>2011-02-07T21:13:00.000+09:00</published><updated>2011-02-07T21:13:16.880+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-07T21:13:16.880+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='Tool'/><category scheme='http://www.blogger.com/atom/ns#' term='Keylogger'/><title>Just Another Hacking Tool #1</title><content type='html'>For those of you who want to learn about hacking, like how do you steal passwords from your friend, or penetrate to a vulnerable server, I got several recommendations of website that you can read:&lt;br /&gt;
&lt;br /&gt;
1. &lt;a href="http://www.hackpconline.com/"&gt;hackpconline&lt;/a&gt;&lt;br /&gt;
2. or compilation of source codes, &lt;a href="http://vxchaos.official.ws/"&gt;vxchaos&lt;/a&gt;&lt;br /&gt;
3. or find a &lt;a href="http://www.metasploit.com/framework/modules/"&gt;metasploit penetration testing framework&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
These sites provide anything there is to help you with hacking, like keylogging tools, phishing templates, XSS softwares, etc.&lt;br /&gt;
&lt;br /&gt;
I myself learn a lot from those websites, and now i can make my own keylogger. So what are you waiting for, hackers-wannabe? :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-6188077023531941852?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/6188077023531941852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/just-another-hacking-tool-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/6188077023531941852?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/6188077023531941852?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/just-another-hacking-tool-1.html' title='Just Another Hacking Tool #1'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0ABSH89cCp7ImA9Wx9UEEo.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-650841605797830365</id><published>2011-02-07T20:55:00.002+09:00</published><updated>2011-02-07T20:55:59.168+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-07T20:55:59.168+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SRM'/><category scheme='http://www.blogger.com/atom/ns#' term='TopCoder'/><category scheme='http://www.blogger.com/atom/ns#' term='DIV II'/><category scheme='http://www.blogger.com/atom/ns#' term='192'/><title>TopCoder SRM 192, DIV II, BoxLoader</title><content type='html'>Problem Statement&lt;br /&gt;
&lt;br /&gt;
Your company has a new box loading robot. It is your job to program it to pack items into the shipping boxes. The robot does not have a very large program memory so you are restricted to placing all the items into the boxes in the same orientation. Each item is a rectangular solid with dimensions itemX by itemY by itemZ. The box is also rectangular with the dimensions boxX by boxY by boxZ. The items can be placed in the box in any orthogonal orientation (ie. the sides of the items must be parallel to the sides of the box), but only whole items can be placed in the box. Your task here is to determine the greatest number of items that can be packed into the box (with all the items in the same orientation).&lt;br /&gt;
&lt;br /&gt;
For example, if the box is 100x98x81 units and the items are 3x5x7 units, then orienting the items so they are 5x7x3, allows them to fit in the box in a 20x14x27 grid, filling the entire box, which is optimal: 7560 items.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
vector&amp;lt;int&amp;gt; items;&lt;br /&gt;
vector&amp;lt;int&amp;gt; boxes;&lt;br /&gt;
&lt;br /&gt;
bool func (vector&amp;lt;int&amp;gt; ti, vector&amp;lt;int&amp;gt; tj){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int mod1=0,mod2=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;repsz(i,ti){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;mod1 += boxes[i]%items[ti[i]];&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;mod2 += boxes[i]%items[tj[i]];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return mod1&amp;lt;mod2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class BoxLoader {&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int mostItems(int boxX, int boxY, int boxZ, int itemX, int itemY, int itemZ) {&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;boxes.pb(boxX);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;boxes.pb(boxY);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;boxes.pb(boxZ);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;items.pb(itemX);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;items.pb(itemY);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;items.pb(itemZ);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;int cnt=0;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;repsz(i,items){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;cnt=0;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;repsz(j,boxes)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(items[i]&amp;gt;boxes[j])cnt++;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;if(cnt==3){boxes.clear();items.clear();return 0;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;vector&amp;lt;int&amp;gt; perm;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;perm.pb(0);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;perm.pb(1);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;perm.pb(2);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;vector&amp;lt;vector&amp;lt;int&amp;gt; &amp;gt; perms;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;perms.pb(perm);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;while(next_permutation(perm.begin(),perm.end())){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;perms.pb(perm);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;sort(perms.begin(),perms.end(),func);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;perm = perms[0];&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;int ans=1;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;repsz(i,perm){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;ans*=boxes[i]/items[perm[i]];&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;boxes.clear();items.clear();&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;return ans;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-650841605797830365?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/650841605797830365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-192-div-ii-boxloader.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/650841605797830365?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/650841605797830365?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-192-div-ii-boxloader.html' title='TopCoder SRM 192, DIV II, BoxLoader'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0EFRHg9eip7ImA9Wx9UEEo.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-2533376785060935043</id><published>2011-02-07T20:53:00.000+09:00</published><updated>2011-02-07T20:53:35.662+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-07T20:53:35.662+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='293'/><category scheme='http://www.blogger.com/atom/ns#' term='SRM'/><category scheme='http://www.blogger.com/atom/ns#' term='TopCoder'/><category scheme='http://www.blogger.com/atom/ns#' term='DIV II'/><title>TopCoder SRM 293, DIV II, Aquarium</title><content type='html'>Problem Statement&lt;br /&gt;
&lt;br /&gt;
You have a fish aquarium. You are given a int[] fishSizes, denoting the size of each fish in the aquarium. They've been getting along pretty well so far, but you would now like to add a new fish (called Bob). You know that fish sometimes eat each other. You estimate that a fish might eat another fish if and only if it is at least two times larger, but no more than ten times larger, than that other fish. &lt;br /&gt;
&lt;br /&gt;
Considering this, you would like to choose Bob's size such that: &lt;br /&gt;
&lt;br /&gt;
- Bob is not in danger of being eaten by any other fish (i.e., its size is not between 1/10 and 1/2, inclusive, the size of any other fish). &lt;br /&gt;
&lt;br /&gt;
- Bob is not tempted to eat any other fish (i.e., no other fish in the aquarium has a size between 1/10 and 1/2, inclusive, of Bob's size). &lt;br /&gt;
&lt;br /&gt;
Your task is to return the number of different integer sizes for Bob between minSize and maxSize, inclusive, that won't cause any eating "conflicts" with other fish.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
#define sz(v) ((int)(v).size())&lt;br /&gt;
#define rep(i,a,n) for(int i=(a);i&amp;lt;(n);i++) &lt;br /&gt;
#define repe(i,a,n) &amp;nbsp;for(int i=(a);i&amp;lt;=(n);i++)&lt;br /&gt;
#define forsz(i,a,v) rep(i,a,sz(v))&lt;br /&gt;
#define repsz(i,v) rep(i,0,sz(v))&lt;br /&gt;
#define vi vector&amp;lt;int&amp;gt;&lt;br /&gt;
class Aquarium {&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int peaceful(int minSize, int maxSize, vector &amp;lt;int&amp;gt; fishSizes) {&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;int ans=0,flag;float bob;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;int mint=minSize,maxt=maxSize;vi f(fishSizes);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;repe(i,mint,maxt){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;bob=(float)i;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;flag=0;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;repsz(j,f){&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;if((bob/f[j]&amp;gt;0.0999&amp;amp;&amp;amp;bob/f[j]&amp;lt;=0.5)||(bob/f[j]&amp;gt;=2&amp;amp;&amp;amp;bob/f[j]&amp;lt;=10))&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{if(bob==1)cout&amp;lt;&amp;lt;"haha"&amp;lt;&amp;lt;endl;flag=1;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;if(!flag)ans++;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;return ans;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
};&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-2533376785060935043?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/2533376785060935043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-293-div-ii-aquarium.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/2533376785060935043?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/2533376785060935043?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/topcoder-srm-293-div-ii-aquarium.html' title='TopCoder SRM 293, DIV II, Aquarium'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0IGSH05eCp7ImA9Wx9UEEo.&quot;'><id>tag:blogger.com,1999:blog-5031715621379185584.post-2013092626703929546</id><published>2011-02-07T20:51:00.001+09:00</published><updated>2011-02-07T20:52:09.320+09:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-07T20:52:09.320+09:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SRM'/><category scheme='http://www.blogger.com/atom/ns#' term='TopCoder'/><category scheme='http://www.blogger.com/atom/ns#' term='DIV II'/><category scheme='http://www.blogger.com/atom/ns#' term='337'/><title>TopCoder SRM 337, DIV II, AnagramList</title><content type='html'>Problem Statement&lt;br /&gt;
&lt;br /&gt;
An anagram of a string is any string that contains the same characters in any order. For example, the anagrams of "tree" are, in alphabetical order: "eert", "eetr", "eret", "erte", "eter", "etre", "reet", "rete", "rtee", "teer", "tere" and "tree".&lt;br /&gt;
&lt;br /&gt;
You will be given a String s and an int i. Return the ith (0-based) anagram of s when listed in alphabetical order. If there is no such anagram, return an empty String.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;deque&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
#include &amp;lt;map&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;cctype&amp;gt;&lt;br /&gt;
#include &amp;lt;cmath&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;bitset&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
typedef long long int lli;&lt;br /&gt;
typedef long unsigned long llu;&lt;br /&gt;
#define mem_prep(varx) memset(varx,0,sizeof(varx))&lt;br /&gt;
#define pb push_back&lt;br /&gt;
#define mp make_pair&lt;br /&gt;
#define sz(v) ((int)(v).size())&lt;br /&gt;
#define rep(i,a,n) for(int i=(a);i&amp;lt;(n);i++) &lt;br /&gt;
#define repe(i,a,n) &amp;nbsp;for(int i=(a);i&amp;lt;=(n);i++)&lt;br /&gt;
#define forsz(i,a,v) rep(i,a,sz(v))&lt;br /&gt;
#define repsz(i,v) rep(i,0,sz(v))&lt;br /&gt;
&lt;br /&gt;
bool func(string i, string j){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return i&amp;lt;j;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class AnagramList {&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;string getAnagram(string s, int i) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;string ans;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;sort(s.begin(),s.end());&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;int n = 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;ans = s;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;bool flag = (i!=0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;while(next_permutation(s.begin(),s.end())){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;if(n==i){ans = s;flag = 1;n--;break;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;n++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;if(n&amp;gt;=i)flag=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;return ((flag)?ans:"");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5031715621379185584-2013092626703929546?l=yuriardila.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuriardila.blogspot.com/feeds/2013092626703929546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yuriardila.blogspot.com/2011/02/t.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/2013092626703929546?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5031715621379185584/posts/default/2013092626703929546?v=2'/><link rel='alternate' type='text/html' href='http://yuriardila.blogspot.com/2011/02/t.html' title='TopCoder SRM 337, DIV II, AnagramList'/><author><name>ardiyu07</name><uri>http://www.blogger.com/profile/04653441322897334005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_mSrpv5iIj8M/TU-H42ElMHI/AAAAAAAAAAY/AFGEjrbpZoE/s220/rock_tux.png'/></author><thr:total>0</thr:total></entry></feed>