<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: 10026 code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Tue, 07 Oct 2008 09:03:10 GMT</pubDate>
    <description>DZone Snippets: 10026 code</description>
    <item>
      <title>A solution for the "Shoemaker" problem</title>
      <link>http://snippets.dzone.com/posts/show/5357</link>
      <description>A solution for the "Shoemaker" problem.&lt;br /&gt;&lt;br /&gt;Problem description:&lt;br /&gt;&lt;a href="http://icpcres.ecs.baylor.edu/onlinejudge/external/100/10026.html"&gt;http://icpcres.ecs.baylor.edu/onlinejudge/external/100/10026.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Author: &lt;a href="http://joanatrindade.wikidot.com"&gt;Joana Matos Fonseca da Trindade&lt;/a&gt;&lt;br /&gt;Date: 2008.04.06&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/* &lt;br /&gt; * Solution for "Shoemaker" problem.&lt;br /&gt; * UVa ID: 10026&lt;br /&gt; */&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;&lt;br /&gt;#define NJOBS 1000&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;int jobs[NJOBS]; /* jobs */&lt;br /&gt;double p[NJOBS]; /* priority */&lt;br /&gt;&lt;br /&gt;/* main */&lt;br /&gt;int main() {&lt;br /&gt;    int nc;	/* number of cases */&lt;br /&gt;	int nj; /* number of jobs */&lt;br /&gt;	int ct;	/* completion time */&lt;br /&gt;	int dp; /* daily penalty */&lt;br /&gt;	&lt;br /&gt;    cin &gt;&gt; nc;&lt;br /&gt;	&lt;br /&gt;	/* for each test case.. */&lt;br /&gt;    for (int i=0; i&lt;nc; i++) {&lt;br /&gt;		cin &gt;&gt; nj;&lt;br /&gt;		&lt;br /&gt;		/* init input */&lt;br /&gt;		for (int i=0; i&lt;nj; i++) {&lt;br /&gt;			cin &gt;&gt; ct &gt;&gt; dp;&lt;br /&gt;			jobs[i] = i;&lt;br /&gt;			/* priority is daily penalty divided by completion time (minimal fine) */&lt;br /&gt;			p[i] = double(dp) / ct;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		int j, k, tmp;&lt;br /&gt;		&lt;br /&gt;		/* sort jobs by priority */&lt;br /&gt;		for (int i=0; i&lt;nj-1; i++) {&lt;br /&gt;			for (j=i+1, k=i; j&lt;nj; j++) {&lt;br /&gt;				if( (p[jobs[j]] &gt; p[jobs[k]]) || ((p[jobs[j]] == p[jobs[k]]) &amp;&amp; (jobs[j] &lt; jobs[k])) ) {&lt;br /&gt;					k=j;&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;			tmp = jobs[i]; &lt;br /&gt;			jobs[i] = jobs[k]; &lt;br /&gt;			jobs[k] = tmp;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		/* output */&lt;br /&gt;		for (int i=0; i&lt;nj; i++) {&lt;br /&gt;			if(i &gt; 0) { &lt;br /&gt;				cout &lt;&lt; " ";&lt;br /&gt;			}&lt;br /&gt;			cout &lt;&lt; jobs[i] + 1;&lt;br /&gt;		}&lt;br /&gt;		cout &lt;&lt; endl;&lt;br /&gt;		if (i &lt; nc-1) {&lt;br /&gt;			cout &lt;&lt; endl;&lt;br /&gt;		}&lt;br /&gt;    }&lt;br /&gt;	&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 14 Apr 2008 01:02:22 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5357</guid>
      <author>jmftrindade (Joana M. F. da Trindade)</author>
    </item>
  </channel>
</rss>
