66 changed files with 2516 additions and 0 deletions
@ -0,0 +1,3 @@ |
|||
# Default ignored files |
|||
/shelf/ |
|||
/workspace.xml |
|||
@ -0,0 +1,9 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<module type="JAVA_MODULE" version="4"> |
|||
<component name="NewModuleRootManager" inherit-compiler-output="true"> |
|||
<exclude-output /> |
|||
<content url="file://$MODULE_DIR$" /> |
|||
<orderEntry type="inheritedJdk" /> |
|||
<orderEntry type="sourceFolder" forTests="false" /> |
|||
</component> |
|||
</module> |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="JpaBuddyIdeaProjectConfig"> |
|||
<option name="renamerInitialized" value="true" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,9 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="ProjectRootManager"> |
|||
<output url="file://$PROJECT_DIR$/out" /> |
|||
</component> |
|||
<component name="ProjectType"> |
|||
<option name="id" value="jpab" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,8 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="ProjectModuleManager"> |
|||
<modules> |
|||
<module fileurl="file://$PROJECT_DIR$/.idea/ccc-2023.iml" filepath="$PROJECT_DIR$/.idea/ccc-2023.iml" /> |
|||
</modules> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="VcsDirectoryMappings"> |
|||
<mapping directory="" vcs="Git" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,38 @@ |
|||
target/ |
|||
!.mvn/wrapper/maven-wrapper.jar |
|||
!**/src/main/**/target/ |
|||
!**/src/test/**/target/ |
|||
|
|||
### IntelliJ IDEA ### |
|||
.idea/modules.xml |
|||
.idea/jarRepositories.xml |
|||
.idea/compiler.xml |
|||
.idea/libraries/ |
|||
*.iws |
|||
*.iml |
|||
*.ipr |
|||
|
|||
### Eclipse ### |
|||
.apt_generated |
|||
.classpath |
|||
.factorypath |
|||
.project |
|||
.settings |
|||
.springBeans |
|||
.sts4-cache |
|||
|
|||
### NetBeans ### |
|||
/nbproject/private/ |
|||
/nbbuild/ |
|||
/dist/ |
|||
/nbdist/ |
|||
/.nb-gradle/ |
|||
build/ |
|||
!**/src/main/**/build/ |
|||
!**/src/test/**/build/ |
|||
|
|||
### VS Code ### |
|||
.vscode/ |
|||
|
|||
### Mac OS ### |
|||
.DS_Store |
|||
@ -0,0 +1,3 @@ |
|||
# Default ignored files |
|||
/shelf/ |
|||
/workspace.xml |
|||
@ -0,0 +1,7 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="Encoding"> |
|||
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> |
|||
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="JpaBuddyIdeaProjectConfig"> |
|||
<option name="renamerInitialized" value="true" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,16 @@ |
|||
<project version="4"> |
|||
<component name="ExternalStorageConfigurationManager" enabled="true" /> |
|||
<component name="MavenProjectsManager"> |
|||
<option name="originalFiles"> |
|||
<list> |
|||
<option value="$PROJECT_DIR$/pom.xml" /> |
|||
</list> |
|||
</option> |
|||
</component> |
|||
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" project-jdk-name="21" project-jdk-type="JavaSDK"> |
|||
<output url="file://$PROJECT_DIR$/out" /> |
|||
</component> |
|||
<component name="ProjectType"> |
|||
<option name="id" value="jpab" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,124 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="Palette2"> |
|||
<group name="Swing"> |
|||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> |
|||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> |
|||
</item> |
|||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> |
|||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> |
|||
</item> |
|||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false"> |
|||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> |
|||
</item> |
|||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true"> |
|||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> |
|||
</item> |
|||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> |
|||
<initial-values> |
|||
<property name="text" value="Button" /> |
|||
</initial-values> |
|||
</item> |
|||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> |
|||
<initial-values> |
|||
<property name="text" value="RadioButton" /> |
|||
</initial-values> |
|||
</item> |
|||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> |
|||
<initial-values> |
|||
<property name="text" value="CheckBox" /> |
|||
</initial-values> |
|||
</item> |
|||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false"> |
|||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> |
|||
<initial-values> |
|||
<property name="text" value="Label" /> |
|||
</initial-values> |
|||
</item> |
|||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> |
|||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> |
|||
<preferred-size width="150" height="-1" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> |
|||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> |
|||
<preferred-size width="150" height="-1" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> |
|||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> |
|||
<preferred-size width="150" height="-1" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true"> |
|||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |
|||
<preferred-size width="150" height="50" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> |
|||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |
|||
<preferred-size width="150" height="50" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> |
|||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |
|||
<preferred-size width="150" height="50" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true"> |
|||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> |
|||
</item> |
|||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |
|||
<preferred-size width="150" height="50" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> |
|||
<preferred-size width="150" height="50" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |
|||
<preferred-size width="150" height="50" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> |
|||
<preferred-size width="200" height="200" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false"> |
|||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> |
|||
<preferred-size width="200" height="200" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true"> |
|||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> |
|||
</item> |
|||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> |
|||
</item> |
|||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> |
|||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> |
|||
</item> |
|||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> |
|||
</item> |
|||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false"> |
|||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> |
|||
<preferred-size width="-1" height="20" /> |
|||
</default-constraints> |
|||
</item> |
|||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> |
|||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> |
|||
</item> |
|||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> |
|||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> |
|||
</item> |
|||
</group> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="VcsDirectoryMappings"> |
|||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,180 @@ |
|||
we want a java code for the following coding challenge: a road is divided into segments numbered from 1 to n |
|||
‐ within each segment, at any moment there can be at |
|||
most one car |
|||
‐ a car can change segments at every full second |
|||
‐ a segment can be entered only when during the past |
|||
second there was no car in it |
|||
‐ if it is not possible for a car to proceed it waits |
|||
‐ all segment changes occur simultanously |
|||
‐ each car has to perform a trip which consists of entering |
|||
the road at a given start segment, subsequently moving |
|||
from one segment to the next, and leaving the road at a |
|||
given end segment |
|||
‐ the arrival time of a car is when it finishes its trip |
|||
‐ all trips within a test case will have different start |
|||
segments Calculate the arrival times of a number of cars, which perform |
|||
trips on one simple road. |
|||
- all trips start at time=1 |
|||
Input: |
|||
Note: lines are separated by newline (\n) |
|||
number road segments (n) |
|||
number of cars (m) |
|||
startsegment,endsegment for car 1 |
|||
… |
|||
startsegment,endsegment for car m |
|||
Example input |
|||
100 |
|||
5 |
|||
3,99 |
|||
40,75 |
|||
20,99 |
|||
28,76 |
|||
1,100 |
|||
Example output |
|||
98,37,81,50,101 |
|||
1 < n < 1000 |
|||
1 < m < 1000 |
|||
1 <= startsegment < endsegment <= n |
|||
Result: |
|||
arrival times of the cars, separated by comma, in the order of |
|||
the input |
|||
|
|||
Lets assume we already have the following data structures: |
|||
|
|||
package at.salento; |
|||
|
|||
public class Car { |
|||
private int startSegment; |
|||
private int endSegment; |
|||
|
|||
private int arrivalTime; |
|||
private int order; |
|||
|
|||
private int earliestStartTime; // introduced in level 2 |
|||
|
|||
private int delay; |
|||
|
|||
private boolean entered = false; |
|||
|
|||
private boolean toRemove = false; // not used at the moment |
|||
|
|||
public Car() { |
|||
this.startSegment = 0; |
|||
this.endSegment = 0; |
|||
this.arrivalTime = 0; |
|||
this.order = 0; |
|||
this.delay = 0; |
|||
} |
|||
|
|||
public Car(int start, int end, int duraction) { |
|||
this.startSegment = start; |
|||
this.endSegment = end; |
|||
this.arrivalTime = duraction; |
|||
this.order = 0; |
|||
this.delay = 0; |
|||
} |
|||
|
|||
public Car(int start, int end, int duration, int order) { |
|||
this.startSegment = start; |
|||
this.endSegment = end; |
|||
this.arrivalTime = duration; |
|||
this.order = order; |
|||
this.delay = 0; |
|||
} |
|||
|
|||
public int getStartSegment() { |
|||
return startSegment; |
|||
} |
|||
|
|||
public void setStartSegment(int startSegment) { |
|||
this.startSegment = startSegment; |
|||
} |
|||
|
|||
public int getEndSegment() { |
|||
return endSegment; |
|||
} |
|||
|
|||
public void setEndSegment(int endSegment) { |
|||
this.endSegment = endSegment; |
|||
} |
|||
|
|||
public int getOrder() { |
|||
return order; |
|||
} |
|||
|
|||
public void setOrder(int order) { |
|||
this.order = order; |
|||
} |
|||
|
|||
public int getArrivalTime() { |
|||
return arrivalTime; |
|||
} |
|||
|
|||
public void setArrivalTime(int arrivalTime) { |
|||
this.arrivalTime = arrivalTime; |
|||
} |
|||
|
|||
public void increaseArrivalTime() { |
|||
this.arrivalTime++; |
|||
} |
|||
|
|||
public int getDelay() { |
|||
return delay; |
|||
} |
|||
|
|||
public void increaseDelay() { |
|||
this.delay++; |
|||
} |
|||
|
|||
public void setDelay(int delay) { |
|||
this.delay = delay; |
|||
} |
|||
|
|||
public int getTotalArrivalTime() { |
|||
return this.arrivalTime + this.delay; |
|||
} |
|||
|
|||
public boolean isEntered() { |
|||
return entered; |
|||
} |
|||
|
|||
public void setEntered(boolean entered) { |
|||
this.entered = entered; |
|||
} |
|||
|
|||
public boolean isToRemove() { |
|||
return toRemove; |
|||
} |
|||
|
|||
public void setToRemove(boolean toRemove) { |
|||
this.toRemove = toRemove; |
|||
} |
|||
|
|||
public int getEarliestStartTime() { |
|||
return earliestStartTime; |
|||
} |
|||
|
|||
public void setEarliestStartTime(int earliestStartTime) { |
|||
this.earliestStartTime = earliestStartTime; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
String viz = ""; |
|||
for (int i = 0; i< startSegment; i++) viz += " "; |
|||
viz += "|"; |
|||
for (int i = startSegment +1; i < endSegment; i++) viz += "-"; |
|||
viz += "|"; |
|||
// for (int i=) |
|||
return String.format(" Car(start: %02d", startSegment) |
|||
+ String.format(", end: %02d", endSegment) |
|||
+ String.format(", arr.t.: %02d", arrivalTime) |
|||
+ String.format(", delay: %02d", delay) |
|||
+ String.format(", est: %02d", earliestStartTime) |
|||
+ String.format(", tot.arr.t: %02d", getTotalArrivalTime()) |
|||
+ String.format(", order: %02d", order) |
|||
+ ") " + "\n"; |
|||
} |
|||
} |
|||
|
|||
and we have filled an private ArrayList<Car> cars; in a class Level1ComputationCGT. we now need a method that performs the required calculation |
|||
Binary file not shown.
@ -0,0 +1,7 @@ |
|||
100 |
|||
5 |
|||
3,99 |
|||
40,75 |
|||
20,99 |
|||
28,76 |
|||
1,100 |
|||
@ -0,0 +1 @@ |
|||
98,37,81,50,101 |
|||
@ -0,0 +1 @@ |
|||
98,37,81,50,101 |
|||
@ -0,0 +1,12 @@ |
|||
40 |
|||
10 |
|||
24,30 |
|||
17,20 |
|||
30,37 |
|||
16,32 |
|||
8,10 |
|||
6,33 |
|||
22,31 |
|||
2,6 |
|||
20,32 |
|||
4,33 |
|||
@ -0,0 +1 @@ |
|||
8,5,9,19,4,29,11,6,14,31 |
|||
@ -0,0 +1 @@ |
|||
8,5,9,19,4,29,11,6,14,31 |
|||
@ -0,0 +1,27 @@ |
|||
80 |
|||
25 |
|||
68,72 |
|||
42,60 |
|||
63,67 |
|||
51,62 |
|||
54,72 |
|||
3,44 |
|||
61,62 |
|||
35,68 |
|||
24,42 |
|||
64,73 |
|||
22,51 |
|||
19,25 |
|||
33,55 |
|||
52,74 |
|||
31,43 |
|||
2,6 |
|||
15,49 |
|||
32,40 |
|||
34,65 |
|||
21,42 |
|||
28,61 |
|||
14,35 |
|||
37,57 |
|||
47,49 |
|||
45,70 |
|||
@ -0,0 +1 @@ |
|||
6,20,7,14,20,43,3,35,21,11,32,9,26,24,18,7,36,13,34,25,38,24,22,4,27 |
|||
@ -0,0 +1 @@ |
|||
6,20,7,14,20,43,3,35,21,11,32,9,26,24,18,7,36,13,34,25,38,24,22,4,27 |
|||
@ -0,0 +1,42 @@ |
|||
80 |
|||
40 |
|||
25,46 |
|||
31,33 |
|||
2,34 |
|||
58,71 |
|||
40,54 |
|||
1,42 |
|||
33,38 |
|||
29,66 |
|||
21,64 |
|||
48,80 |
|||
67,80 |
|||
39,77 |
|||
24,60 |
|||
41,58 |
|||
34,52 |
|||
4,76 |
|||
52,58 |
|||
30,59 |
|||
44,62 |
|||
64,69 |
|||
36,39 |
|||
19,62 |
|||
60,62 |
|||
70,74 |
|||
14,55 |
|||
7,25 |
|||
37,75 |
|||
20,72 |
|||
35,61 |
|||
13,17 |
|||
47,75 |
|||
57,62 |
|||
61,69 |
|||
45,66 |
|||
23,24 |
|||
42,57 |
|||
54,61 |
|||
10,76 |
|||
27,69 |
|||
49,50 |
|||
@ -0,0 +1 @@ |
|||
31,8,37,16,21,47,15,47,53,35,15,46,47,23,27,77,9,38,23,7,10,55,5,6,50,24,46,63,34,7,32,9,10,25,5,20,10,73,52,3 |
|||
@ -0,0 +1 @@ |
|||
31,8,37,16,21,47,15,47,53,35,15,46,47,23,27,77,9,38,23,7,10,55,5,6,50,24,46,63,34,7,32,9,10,25,5,20,10,73,52,3 |
|||
@ -0,0 +1,62 @@ |
|||
100 |
|||
60 |
|||
21,57 |
|||
3,95 |
|||
11,97 |
|||
80,81 |
|||
75,82 |
|||
57,91 |
|||
85,90 |
|||
54,71 |
|||
13,64 |
|||
43,93 |
|||
60,93 |
|||
51,75 |
|||
22,91 |
|||
81,84 |
|||
83,100 |
|||
87,91 |
|||
55,65 |
|||
63,78 |
|||
89,100 |
|||
68,89 |
|||
49,71 |
|||
50,83 |
|||
15,19 |
|||
31,98 |
|||
16,19 |
|||
42,43 |
|||
34,94 |
|||
70,90 |
|||
76,97 |
|||
66,80 |
|||
36,62 |
|||
79,98 |
|||
19,68 |
|||
77,84 |
|||
27,97 |
|||
35,80 |
|||
29,71 |
|||
6,59 |
|||
65,85 |
|||
53,98 |
|||
74,99 |
|||
23,96 |
|||
52,57 |
|||
7,24 |
|||
8,48 |
|||
56,93 |
|||
30,95 |
|||
62,89 |
|||
38,51 |
|||
14,23 |
|||
37,80 |
|||
24,66 |
|||
82,97 |
|||
32,82 |
|||
71,85 |
|||
78,96 |
|||
47,94 |
|||
59,85 |
|||
5,60 |
|||
61,97 |
|||
@ -0,0 +1 @@ |
|||
60,112,106,6,17,50,7,36,71,70,48,44,92,7,19,6,28,27,13,32,44,54,7,87,5,4,79,31,30,25,43,25,73,15,92,63,64,72,32,65,36,95,18,24,59,54,86,40,24,13,59,63,18,69,24,25,69,42,75,50 |
|||
@ -0,0 +1 @@ |
|||
60,112,106,6,17,50,7,36,71,70,48,44,92,7,19,6,28,27,13,32,44,54,7,87,5,4,79,31,30,25,43,25,73,15,92,63,64,72,32,65,36,95,18,24,59,54,86,40,24,13,59,63,18,69,24,25,69,42,75,50 |
|||
@ -0,0 +1,112 @@ |
|||
300 |
|||
110 |
|||
177,217 |
|||
133,226 |
|||
188,196 |
|||
169,292 |
|||
286,290 |
|||
174,272 |
|||
102,133 |
|||
181,206 |
|||
289,299 |
|||
254,270 |
|||
124,281 |
|||
5,208 |
|||
11,89 |
|||
250,289 |
|||
43,288 |
|||
100,259 |
|||
139,265 |
|||
189,283 |
|||
213,238 |
|||
48,166 |
|||
108,290 |
|||
268,274 |
|||
89,101 |
|||
115,188 |
|||
157,260 |
|||
61,185 |
|||
247,260 |
|||
261,288 |
|||
178,270 |
|||
193,282 |
|||
167,253 |
|||
217,278 |
|||
32,33 |
|||
62,198 |
|||
22,189 |
|||
67,245 |
|||
121,139 |
|||
228,238 |
|||
105,146 |
|||
226,265 |
|||
190,284 |
|||
2,38 |
|||
76,227 |
|||
207,219 |
|||
129,201 |
|||
218,281 |
|||
140,227 |
|||
58,232 |
|||
10,155 |
|||
101,130 |
|||
37,49 |
|||
65,156 |
|||
202,211 |
|||
227,285 |
|||
70,175 |
|||
85,116 |
|||
203,272 |
|||
97,190 |
|||
201,300 |
|||
233,294 |
|||
183,191 |
|||
198,246 |
|||
196,203 |
|||
110,223 |
|||
26,288 |
|||
12,73 |
|||
256,259 |
|||
163,252 |
|||
63,168 |
|||
130,238 |
|||
145,241 |
|||
164,250 |
|||
20,71 |
|||
265,299 |
|||
134,171 |
|||
282,297 |
|||
92,226 |
|||
223,281 |
|||
280,299 |
|||
236,287 |
|||
135,272 |
|||
104,199 |
|||
77,273 |
|||
66,97 |
|||
170,220 |
|||
24,140 |
|||
238,294 |
|||
162,291 |
|||
239,279 |
|||
144,202 |
|||
161,282 |
|||
231,294 |
|||
149,187 |
|||
235,246 |
|||
123,150 |
|||
150,182 |
|||
246,274 |
|||
3,59 |
|||
159,222 |
|||
277,295 |
|||
224,250 |
|||
229,290 |
|||
52,216 |
|||
151,264 |
|||
180,263 |
|||
53,271 |
|||
96,225 |
|||
109,300 |
|||
84,99 |
|||
285,298 |
|||
@ -0,0 +1 @@ |
|||
44,97,12,126,6,101,35,27,12,18,159,205,81,41,247,165,129,97,29,120,186,8,15,75,108,130,15,29,95,91,89,67,3,141,169,180,21,15,44,46,96,39,154,14,76,68,89,179,149,34,14,95,12,64,107,33,71,98,103,65,10,51,10,115,264,63,5,92,109,111,98,88,53,36,40,17,138,66,21,54,139,99,198,34,52,118,59,133,42,61,126,67,42,15,30,35,31,58,68,20,33,65,167,115,86,220,135,194,18,16 |
|||
@ -0,0 +1 @@ |
|||
44,97,12,126,6,101,35,27,12,18,159,205,81,41,247,165,129,97,29,120,186,8,15,75,108,130,15,29,95,91,89,67,3,141,169,180,21,15,44,46,96,39,154,14,76,68,89,179,149,34,14,95,12,64,107,33,71,98,103,65,10,51,10,115,264,63,5,92,109,111,98,88,53,36,40,17,138,66,21,54,139,99,198,34,52,118,59,133,42,61,126,67,42,15,30,35,31,58,68,20,33,65,167,115,86,220,135,194,18,16 |
|||
@ -0,0 +1,242 @@ |
|||
400 |
|||
240 |
|||
66,266 |
|||
30,70 |
|||
119,395 |
|||
240,308 |
|||
343,382 |
|||
34,237 |
|||
107,261 |
|||
355,377 |
|||
114,374 |
|||
286,396 |
|||
235,247 |
|||
139,393 |
|||
173,183 |
|||
208,231 |
|||
362,376 |
|||
302,358 |
|||
309,375 |
|||
312,389 |
|||
278,322 |
|||
304,316 |
|||
29,201 |
|||
89,133 |
|||
258,383 |
|||
353,361 |
|||
284,316 |
|||
55,393 |
|||
338,366 |
|||
198,246 |
|||
62,350 |
|||
120,147 |
|||
201,292 |
|||
187,197 |
|||
46,315 |
|||
106,371 |
|||
252,350 |
|||
259,391 |
|||
231,304 |
|||
169,287 |
|||
121,170 |
|||
244,250 |
|||
155,216 |
|||
385,392 |
|||
13,216 |
|||
151,337 |
|||
168,242 |
|||
103,204 |
|||
219,231 |
|||
154,158 |
|||
144,209 |
|||
247,320 |
|||
64,382 |
|||
146,147 |
|||
251,277 |
|||
366,375 |
|||
157,245 |
|||
189,224 |
|||
225,226 |
|||
379,400 |
|||
80,279 |
|||
83,353 |
|||
202,365 |
|||
137,275 |
|||
288,325 |
|||
306,350 |
|||
93,178 |
|||
297,332 |
|||
265,331 |
|||
104,258 |
|||
205,241 |
|||
63,363 |
|||
97,112 |
|||
77,342 |
|||
218,300 |
|||
290,338 |
|||
294,342 |
|||
26,27 |
|||
175,295 |
|||
206,285 |
|||
197,311 |
|||
14,99 |
|||
248,371 |
|||
33,329 |
|||
260,320 |
|||
273,350 |
|||
156,230 |
|||
267,304 |
|||
152,345 |
|||
31,208 |
|||
185,224 |
|||
72,311 |
|||
79,149 |
|||
181,203 |
|||
367,396 |
|||
45,317 |
|||
20,23 |
|||
371,382 |
|||
300,377 |
|||
327,383 |
|||
41,99 |
|||
384,392 |
|||
227,264 |
|||
230,239 |
|||
95,252 |
|||
373,399 |
|||
377,393 |
|||
233,305 |
|||
241,338 |
|||
191,390 |
|||
303,332 |
|||
324,358 |
|||
69,373 |
|||
133,134 |
|||
222,320 |
|||
145,232 |
|||
263,329 |
|||
17,59 |
|||
129,216 |
|||
19,283 |
|||
125,219 |
|||
136,281 |
|||
194,304 |
|||
162,299 |
|||
108,170 |
|||
24,103 |
|||
345,390 |
|||
166,174 |
|||
128,151 |
|||
211,215 |
|||
364,375 |
|||
212,354 |
|||
261,299 |
|||
50,120 |
|||
40,290 |
|||
61,171 |
|||
289,361 |
|||
49,333 |
|||
356,378 |
|||
193,303 |
|||
282,338 |
|||
344,399 |
|||
178,283 |
|||
224,327 |
|||
11,369 |
|||
42,162 |
|||
70,145 |
|||
274,389 |
|||
322,331 |
|||
266,344 |
|||
387,399 |
|||
102,252 |
|||
301,374 |
|||
188,324 |
|||
48,288 |
|||
298,346 |
|||
262,285 |
|||
134,266 |
|||
269,352 |
|||
254,268 |
|||
253,347 |
|||
47,171 |
|||
358,382 |
|||
341,346 |
|||
349,354 |
|||
271,399 |
|||
183,324 |
|||
370,393 |
|||
57,325 |
|||
332,397 |
|||
74,247 |
|||
53,76 |
|||
27,358 |
|||
335,356 |
|||
239,271 |
|||
109,252 |
|||
58,390 |
|||
6,105 |
|||
3,40 |
|||
174,356 |
|||
234,385 |
|||
200,310 |
|||
87,286 |
|||
352,387 |
|||
71,261 |
|||
342,400 |
|||
94,148 |
|||
52,302 |
|||
186,227 |
|||
36,129 |
|||
51,188 |
|||
389,390 |
|||
92,214 |
|||
337,391 |
|||
307,310 |
|||
238,336 |
|||
196,391 |
|||
375,386 |
|||
143,174 |
|||
213,352 |
|||
105,274 |
|||
2,393 |
|||
323,345 |
|||
161,336 |
|||
4,393 |
|||
116,267 |
|||
236,337 |
|||
293,320 |
|||
54,222 |
|||
390,400 |
|||
59,323 |
|||
365,384 |
|||
299,394 |
|||
32,209 |
|||
130,150 |
|||
138,201 |
|||
348,384 |
|||
292,327 |
|||
277,362 |
|||
215,220 |
|||
23,185 |
|||
223,248 |
|||
276,400 |
|||
142,363 |
|||
209,398 |
|||
28,186 |
|||
321,362 |
|||
207,371 |
|||
229,354 |
|||
177,364 |
|||
369,378 |
|||
123,156 |
|||
1,170 |
|||
199,374 |
|||
314,333 |
|||
115,234 |
|||
250,331 |
|||
272,359 |
|||
99,284 |
|||
243,339 |
|||
68,269 |
|||
117,270 |
|||
@ -0,0 +1 @@ |
|||
216,70,285,91,45,231,165,28,272,123,26,269,25,37,21,61,68,79,55,15,203,59,148,14,45,359,33,71,306,35,111,26,297,277,119,154,99,139,57,12,80,10,233,205,96,116,27,9,81,97,334,3,48,14,105,58,3,23,211,283,182,155,50,47,100,45,84,168,53,317,26,278,105,59,57,11,143,100,138,114,146,325,81,91,92,53,211,208,64,251,83,42,33,301,5,13,84,58,87,12,63,23,170,28,18,98,119,225,33,36,319,4,123,102,84,72,102,295,107,163,135,155,72,111,49,12,31,8,18,163,58,94,280,129,84,309,27,136,69,60,127,128,388,148,89,128,13,95,15,166,79,161,266,57,42,150,99,26,114,151,29,11,8,144,166,26,289,70,185,41,364,27,56,152,352,126,60,206,176,131,214,42,203,65,68,272,65,121,160,4,138,60,5,123,220,13,43,159,182,418,25,194,416,161,126,37,190,12,283,25,103,207,26,79,41,46,97,9,195,44,137,237,209,190,46,184,151,210,13,40,197,197,21,130,104,102,200,118,217,162 |
|||
@ -0,0 +1 @@ |
|||
216,70,285,91,45,231,165,28,272,123,26,269,25,37,21,61,68,79,55,15,203,59,148,14,45,359,33,71,306,35,111,26,297,277,119,154,99,139,57,12,80,10,233,205,96,116,27,9,81,97,334,3,48,14,105,58,3,23,211,283,182,155,50,47,100,45,84,168,53,317,26,278,105,59,57,11,143,100,138,114,146,325,81,91,92,53,211,208,64,251,83,42,33,301,5,13,84,58,87,12,63,23,170,28,18,98,119,225,33,36,319,4,123,102,84,72,102,295,107,163,135,155,72,111,49,12,31,8,18,163,58,94,280,129,84,309,27,136,69,60,127,128,388,148,89,128,13,95,15,166,79,161,266,57,42,150,99,26,114,151,29,11,8,144,166,26,289,70,185,41,364,27,56,152,352,126,60,206,176,131,214,42,203,65,68,272,65,121,160,4,138,60,5,123,220,13,43,159,182,418,25,194,416,161,126,37,190,12,283,25,103,207,26,79,41,46,97,9,195,44,137,237,209,190,46,184,151,210,13,40,197,197,21,130,104,102,200,118,217,162 |
|||
Binary file not shown.
@ -0,0 +1,12 @@ |
|||
40 |
|||
10 |
|||
11,13,28 |
|||
30,37,62 |
|||
4,24,102 |
|||
6,33,138 |
|||
27,30,154 |
|||
20,32,170 |
|||
11,19,196 |
|||
2,20,209 |
|||
18,21,239 |
|||
23,24,273 |
|||
@ -0,0 +1 @@ |
|||
31,70,123,166,158,183,205,228,243,275 |
|||
@ -0,0 +1 @@ |
|||
31,70,123,166,158,183,205,228,243,275 |
|||
@ -0,0 +1,12 @@ |
|||
40 |
|||
10 |
|||
11,13,54 |
|||
30,37,15 |
|||
4,24,11 |
|||
6,33,12 |
|||
27,30,47 |
|||
20,32,12 |
|||
8,30,44 |
|||
12,33,42 |
|||
5,33,28 |
|||
22,29,29 |
|||
@ -0,0 +1 @@ |
|||
57,23,33,40,51,25,67,64,57,40 |
|||
@ -0,0 +1 @@ |
|||
57,23,33,40,51,25,67,64,57,40 |
|||
@ -0,0 +1,27 @@ |
|||
80 |
|||
25 |
|||
61,62,41 |
|||
68,78,30 |
|||
64,73,9 |
|||
37,68,52 |
|||
33,55,28 |
|||
31,43,7 |
|||
66,67,32 |
|||
19,40,34 |
|||
34,65,44 |
|||
32,68,26 |
|||
22,74,14 |
|||
13,41,4 |
|||
47,49,39 |
|||
25,70,20 |
|||
58,60,21 |
|||
21,30,29 |
|||
1,42,54 |
|||
29,66,38 |
|||
42,78,21 |
|||
67,80,25 |
|||
48,52,29 |
|||
24,60,49 |
|||
40,44,41 |
|||
52,58,3 |
|||
39,76,5 |
|||
@ -0,0 +1 @@ |
|||
44,41,19,84,56,20,36,58,78,67,69,33,42,67,24,39,96,77,58,39,34,86,47,10,43 |
|||
@ -0,0 +1,42 @@ |
|||
80 |
|||
40 |
|||
50,51,4 |
|||
12,52,19 |
|||
19,62,47 |
|||
62,74,10 |
|||
60,80,4 |
|||
23,44,4 |
|||
17,47,32 |
|||
20,72,10 |
|||
58,63,34 |
|||
13,17,36 |
|||
48,66,22 |
|||
70,77,28 |
|||
61,69,49 |
|||
39,47,27 |
|||
11,65,21 |
|||
25,42,5 |
|||
4,27,40 |
|||
21,39,27 |
|||
10,76,53 |
|||
14,29,7 |
|||
9,72,11 |
|||
41,46,18 |
|||
55,62,6 |
|||
45,70,27 |
|||
65,78,29 |
|||
3,10,46 |
|||
43,48,40 |
|||
42,71,45 |
|||
63,80,1 |
|||
36,63,47 |
|||
2,4,10 |
|||
49,66,20 |
|||
34,43,35 |
|||
6,21,52 |
|||
67,70,37 |
|||
68,78,5 |
|||
26,71,45 |
|||
40,51,41 |
|||
16,42,21 |
|||
37,57,39 |
|||
@ -0,0 +1 @@ |
|||
6,60,91,23,25,27,65,63,40,41,41,36,58,36,79,23,64,49,122,23,76,24,14,54,43,54,46,81,20,79,13,38,45,69,41,16,91,63,48,79 |
|||
@ -0,0 +1,62 @@ |
|||
100 |
|||
60 |
|||
41,100,37 |
|||
29,71,5 |
|||
1,93,41 |
|||
43,94,30 |
|||
44,92,43 |
|||
85,93,26 |
|||
21,76,40 |
|||
80,87,3 |
|||
8,48,28 |
|||
9,83,36 |
|||
3,34,5 |
|||
36,62,26 |
|||
38,51,22 |
|||
89,96,26 |
|||
37,80,17 |
|||
24,36,54 |
|||
22,44,34 |
|||
32,82,46 |
|||
83,89,2 |
|||
64,72,51 |
|||
78,96,5 |
|||
82,100,27 |
|||
60,72,28 |
|||
25,45,39 |
|||
61,97,45 |
|||
58,94,12 |
|||
46,76,19 |
|||
62,93,54 |
|||
28,67,46 |
|||
14,50,21 |
|||
45,83,9 |
|||
7,22,31 |
|||
63,84,14 |
|||
69,87,45 |
|||
49,86,45 |
|||
53,88,54 |
|||
48,66,28 |
|||
39,84,43 |
|||
23,41,35 |
|||
81,91,48 |
|||
74,91,37 |
|||
52,53,55 |
|||
2,40,48 |
|||
57,85,22 |
|||
68,77,31 |
|||
26,65,26 |
|||
54,55,55 |
|||
66,70,42 |
|||
87,95,17 |
|||
72,86,19 |
|||
70,77,17 |
|||
40,75,8 |
|||
90,91,14 |
|||
77,85,47 |
|||
15,17,50 |
|||
50,85,22 |
|||
65,81,19 |
|||
67,82,8 |
|||
33,38,41 |
|||
86,97,46 |
|||
@ -0,0 +1 @@ |
|||
100,55,134,88,96,35,99,11,73,111,37,60,36,35,66,67,57,99,9,62,24,46,46,64,89,49,56,89,88,58,51,47,36,65,88,94,54,95,56,61,57,62,87,57,41,73,58,52,26,36,25,47,16,59,53,61,38,24,48,58 |
|||
@ -0,0 +1,112 @@ |
|||
300 |
|||
110 |
|||
110,223,15 |
|||
192,250,11 |
|||
2,216,50 |
|||
163,252,25 |
|||
25,180,18 |
|||
254,291,18 |
|||
46,60,25 |
|||
20,71,22 |
|||
67,256,12 |
|||
14,164,15 |
|||
203,246,2 |
|||
92,226,23 |
|||
43,208,18 |
|||
236,287,54 |
|||
57,112,55 |
|||
77,273,54 |
|||
17,248,31 |
|||
170,220,42 |
|||
144,176,9 |
|||
162,291,24 |
|||
250,259,41 |
|||
244,247,35 |
|||
10,241,27 |
|||
85,294,23 |
|||
235,246,23 |
|||
69,124,43 |
|||
246,274,7 |
|||
208,299,53 |
|||
159,222,37 |
|||
3,13,47 |
|||
229,290,2 |
|||
189,260,51 |
|||
151,264,21 |
|||
133,250,35 |
|||
96,225,46 |
|||
84,99,44 |
|||
265,291,8 |
|||
13,73,50 |
|||
150,269,37 |
|||
78,247,35 |
|||
211,243,55 |
|||
215,252,31 |
|||
56,300,34 |
|||
97,196,40 |
|||
99,199,14 |
|||
182,296,2 |
|||
66,297,52 |
|||
138,254,15 |
|||
256,283,44 |
|||
89,244,13 |
|||
277,283,3 |
|||
238,282,48 |
|||
155,273,26 |
|||
8,170,13 |
|||
184,200,32 |
|||
181,287,52 |
|||
119,268,7 |
|||
276,277,19 |
|||
218,293,42 |
|||
101,239,15 |
|||
126,175,9 |
|||
274,280,32 |
|||
275,282,30 |
|||
279,289,43 |
|||
129,231,41 |
|||
263,270,52 |
|||
135,169,9 |
|||
261,295,52 |
|||
33,292,17 |
|||
42,182,12 |
|||
11,287,44 |
|||
29,98,31 |
|||
113,121,27 |
|||
16,117,5 |
|||
280,299,14 |
|||
148,176,48 |
|||
191,262,52 |
|||
217,227,55 |
|||
123,274,48 |
|||
86,245,37 |
|||
1,272,21 |
|||
87,237,25 |
|||
241,268,42 |
|||
50,298,7 |
|||
76,113,44 |
|||
95,146,50 |
|||
24,231,38 |
|||
41,240,38 |
|||
154,278,18 |
|||
193,226,20 |
|||
30,185,6 |
|||
72,140,42 |
|||
28,149,32 |
|||
213,262,36 |
|||
102,287,18 |
|||
136,160,49 |
|||
253,277,46 |
|||
223,245,12 |
|||
140,277,44 |
|||
286,292,17 |
|||
137,272,55 |
|||
290,299,37 |
|||
252,287,5 |
|||
117,209,48 |
|||
183,268,15 |
|||
127,269,51 |
|||
132,151,13 |
|||
243,259,24 |
|||
45,132,12 |
|||
21,23,38 |
|||
@ -0,0 +1 @@ |
|||
130,71,265,120,174,58,42,77,202,166,46,158,184,106,112,255,263,98,45,155,51,41,260,233,38,102,36,146,104,58,64,126,136,153,176,61,35,111,157,207,88,69,284,140,118,119,285,134,72,169,10,93,147,180,49,163,158,23,120,156,59,39,38,54,144,61,44,88,278,154,321,102,38,107,34,77,124,67,203,198,295,178,70,256,83,102,248,238,148,54,165,114,157,87,208,75,72,35,182,24,195,47,41,143,101,196,33,41,100,44 |
|||
@ -0,0 +1,252 @@ |
|||
400 |
|||
250 |
|||
233,341,17 |
|||
19,283,30 |
|||
99,303,25 |
|||
136,281,6 |
|||
324,357,24 |
|||
93,153,42 |
|||
24,103,40 |
|||
152,245,9 |
|||
166,174,45 |
|||
81,99,28 |
|||
45,284,46 |
|||
212,354,10 |
|||
201,338,21 |
|||
40,290,30 |
|||
297,387,4 |
|||
368,370,6 |
|||
49,333,54 |
|||
356,378,9 |
|||
343,352,38 |
|||
175,399,21 |
|||
178,283,26 |
|||
245,356,54 |
|||
42,162,25 |
|||
225,234,45 |
|||
322,331,24 |
|||
266,344,33 |
|||
363,381,47 |
|||
227,388,12 |
|||
139,400,51 |
|||
234,297,13 |
|||
114,282,18 |
|||
262,285,1 |
|||
182,223,44 |
|||
269,352,27 |
|||
250,263,39 |
|||
185,252,48 |
|||
344,392,35 |
|||
246,249,53 |
|||
349,354,19 |
|||
293,392,1 |
|||
29,400,33 |
|||
57,325,33 |
|||
25,234,27 |
|||
53,76,14 |
|||
27,358,43 |
|||
216,272,10 |
|||
239,271,43 |
|||
209,289,49 |
|||
58,390,19 |
|||
145,253,21 |
|||
156,262,4 |
|||
111,114,21 |
|||
87,286,10 |
|||
191,362,23 |
|||
31,200,22 |
|||
352,387,33 |
|||
71,261,9 |
|||
342,400,4 |
|||
345,384,12 |
|||
194,274,27 |
|||
244,348,44 |
|||
80,145,3 |
|||
341,392,51 |
|||
353,366,36 |
|||
51,188,24 |
|||
23,297,4 |
|||
337,391,22 |
|||
279,390,2 |
|||
196,391,36 |
|||
36,385,45 |
|||
143,174,31 |
|||
267,282,23 |
|||
278,298,24 |
|||
323,345,25 |
|||
4,393,21 |
|||
251,289,16 |
|||
218,268,41 |
|||
70,243,1 |
|||
54,222,28 |
|||
10,257,5 |
|||
103,240,14 |
|||
299,394,54 |
|||
347,349,32 |
|||
230,318,30 |
|||
304,358,12 |
|||
140,177,18 |
|||
292,327,22 |
|||
277,362,42 |
|||
286,381,52 |
|||
59,265,35 |
|||
223,248,29 |
|||
326,375,36 |
|||
142,363,24 |
|||
20,391,41 |
|||
28,186,23 |
|||
320,387,11 |
|||
229,354,48 |
|||
302,303,7 |
|||
177,311,22 |
|||
146,239,5 |
|||
203,271,18 |
|||
373,383,23 |
|||
199,374,53 |
|||
102,202,20 |
|||
309,329,9 |
|||
77,197,54 |
|||
44,329,15 |
|||
108,141,40 |
|||
291,319,1 |
|||
272,359,37 |
|||
94,329,50 |
|||
173,360,11 |
|||
213,259,20 |
|||
243,339,16 |
|||
253,347,13 |
|||
117,270,22 |
|||
283,286,24 |
|||
60,84,4 |
|||
376,400,36 |
|||
259,302,9 |
|||
86,304,2 |
|||
132,150,6 |
|||
149,245,54 |
|||
106,229,10 |
|||
100,152,13 |
|||
7,291,11 |
|||
228,287,35 |
|||
365,388,14 |
|||
331,382,41 |
|||
66,135,34 |
|||
386,393,7 |
|||
226,260,28 |
|||
236,240,46 |
|||
126,141,23 |
|||
163,333,44 |
|||
289,369,3 |
|||
128,372,16 |
|||
242,295,16 |
|||
184,339,45 |
|||
183,248,33 |
|||
281,299,11 |
|||
200,232,14 |
|||
237,245,20 |
|||
204,356,47 |
|||
123,227,1 |
|||
82,209,1 |
|||
192,317,49 |
|||
104,312,20 |
|||
98,181,43 |
|||
338,394,1 |
|||
107,176,38 |
|||
325,373,16 |
|||
235,290,51 |
|||
195,359,22 |
|||
164,173,54 |
|||
172,272,32 |
|||
232,369,21 |
|||
125,143,13 |
|||
130,141,22 |
|||
67,260,53 |
|||
380,391,35 |
|||
287,292,30 |
|||
275,285,2 |
|||
46,316,24 |
|||
359,394,25 |
|||
336,361,42 |
|||
22,232,27 |
|||
176,380,5 |
|||
131,287,54 |
|||
328,337,4 |
|||
288,290,12 |
|||
61,286,29 |
|||
73,236,15 |
|||
141,340,35 |
|||
383,389,17 |
|||
354,387,38 |
|||
21,236,48 |
|||
314,317,13 |
|||
5,132,18 |
|||
231,296,17 |
|||
270,377,3 |
|||
361,398,4 |
|||
179,191,26 |
|||
321,346,47 |
|||
222,346,48 |
|||
305,335,54 |
|||
190,244,5 |
|||
255,347,45 |
|||
135,395,14 |
|||
110,265,26 |
|||
41,182,48 |
|||
35,337,26 |
|||
208,370,29 |
|||
220,267,44 |
|||
224,238,30 |
|||
273,293,12 |
|||
308,350,19 |
|||
310,331,4 |
|||
327,384,20 |
|||
379,396,34 |
|||
116,128,49 |
|||
9,113,46 |
|||
85,250,6 |
|||
89,162,9 |
|||
17,56,38 |
|||
301,305,50 |
|||
78,100,39 |
|||
74,102,52 |
|||
193,239,7 |
|||
360,384,55 |
|||
181,399,41 |
|||
189,194,45 |
|||
138,386,3 |
|||
167,257,12 |
|||
357,396,7 |
|||
319,323,11 |
|||
72,353,36 |
|||
32,177,9 |
|||
375,391,39 |
|||
157,363,37 |
|||
1,143,2 |
|||
252,399,23 |
|||
12,49,38 |
|||
154,294,8 |
|||
76,140,13 |
|||
186,203,29 |
|||
118,272,49 |
|||
37,323,27 |
|||
312,319,51 |
|||
14,284,21 |
|||
91,143,18 |
|||
389,394,45 |
|||
264,373,11 |
|||
265,312,6 |
|||
238,301,5 |
|||
254,318,15 |
|||
155,344,48 |
|||
171,336,34 |
|||
119,259,2 |
|||
274,323,24 |
|||
390,394,38 |
|||
137,343,25 |
|||
371,399,55 |
|||
296,358,15 |
|||
105,161,9 |
|||
112,241,25 |
|||
382,397,44 |
|||
30,371,6 |
|||
247,296,11 |
|||
68,307,8 |
|||
@ -0,0 +1 @@ |
|||
128,318,253,173,59,120,144,127,56,58,299,154,176,295,96,9,350,34,50,263,145,170,163,62,38,119,68,177,326,82,200,25,103,112,57,130,87,59,25,111,423,316,255,38,397,70,79,139,361,147,132,29,234,206,207,69,222,64,56,120,152,98,105,50,169,296,82,117,243,414,76,39,46,50,436,62,100,198,205,268,164,152,37,120,69,65,60,130,151,252,60,92,267,436,199,80,178,9,169,123,93,37,240,140,32,182,308,84,36,131,298,208,77,120,109,186,30,30,62,56,236,25,165,151,75,318,103,38,97,112,15,66,54,41,231,92,284,78,215,108,30,51,29,210,123,149,185,246,140,62,120,70,110,199,71,158,165,32,39,257,51,36,13,311,68,68,263,222,223,14,16,261,201,254,24,76,283,17,169,87,112,42,41,75,182,87,70,140,297,195,207,346,200,101,50,35,71,29,85,52,67,162,196,100,99,59,65,89,59,83,273,52,276,113,48,17,326,170,61,263,162,178,94,166,97,47,214,326,59,317,94,52,123,58,78,82,254,224,165,79,43,251,84,83,69,169,63,360,62,270 |
|||
@ -0,0 +1,255 @@ |
|||
/home/andy/.jdks/openjdk-21/bin/java -javaagent:/snap/intellij-idea-community/456/lib/idea_rt.jar=43773:/snap/intellij-idea-community/456/bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath /home/andy/IdeaProjects/CloudflightCodingContest/target/classes:/home/andy/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.10.0/junit-jupiter-api-5.10.0.jar:/home/andy/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/home/andy/.m2/repository/org/junit/platform/junit-platform-commons/1.10.0/junit-platform-commons-1.10.0.jar:/home/andy/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar at.salento.Main |
|||
61,62,41 |
|||
68,78,30 |
|||
64,73,9 |
|||
37,68,52 |
|||
33,55,28 |
|||
31,43,7 |
|||
66,67,32 |
|||
19,40,34 |
|||
34,65,44 |
|||
32,68,26 |
|||
22,74,14 |
|||
13,41,4 |
|||
47,49,39 |
|||
25,70,20 |
|||
58,60,21 |
|||
21,30,29 |
|||
1,42,54 |
|||
29,66,38 |
|||
42,78,21 |
|||
67,80,25 |
|||
48,52,29 |
|||
24,60,49 |
|||
40,44,41 |
|||
52,58,3 |
|||
39,76,5 |
|||
Queue:[ Car(start: 61, end: 62, arr.t.: 00, delay: 00, est: 41, tot.arr.t: 00, order: 00) |
|||
, Car(start: 68, end: 78, arr.t.: 00, delay: 00, est: 30, tot.arr.t: 00, order: 01) |
|||
, Car(start: 64, end: 73, arr.t.: 00, delay: 00, est: 09, tot.arr.t: 00, order: 02) |
|||
, Car(start: 37, end: 68, arr.t.: 00, delay: 00, est: 52, tot.arr.t: 00, order: 03) |
|||
, Car(start: 33, end: 55, arr.t.: 00, delay: 00, est: 28, tot.arr.t: 00, order: 04) |
|||
, Car(start: 31, end: 43, arr.t.: 00, delay: 00, est: 07, tot.arr.t: 00, order: 05) |
|||
, Car(start: 66, end: 67, arr.t.: 00, delay: 00, est: 32, tot.arr.t: 00, order: 06) |
|||
, Car(start: 19, end: 40, arr.t.: 00, delay: 00, est: 34, tot.arr.t: 00, order: 07) |
|||
, Car(start: 34, end: 65, arr.t.: 00, delay: 00, est: 44, tot.arr.t: 00, order: 08) |
|||
, Car(start: 32, end: 68, arr.t.: 00, delay: 00, est: 26, tot.arr.t: 00, order: 09) |
|||
, Car(start: 22, end: 74, arr.t.: 00, delay: 00, est: 14, tot.arr.t: 00, order: 10) |
|||
, Car(start: 13, end: 41, arr.t.: 00, delay: 00, est: 04, tot.arr.t: 00, order: 11) |
|||
, Car(start: 47, end: 49, arr.t.: 00, delay: 00, est: 39, tot.arr.t: 00, order: 12) |
|||
, Car(start: 25, end: 70, arr.t.: 00, delay: 00, est: 20, tot.arr.t: 00, order: 13) |
|||
, Car(start: 58, end: 60, arr.t.: 00, delay: 00, est: 21, tot.arr.t: 00, order: 14) |
|||
, Car(start: 21, end: 30, arr.t.: 00, delay: 00, est: 29, tot.arr.t: 00, order: 15) |
|||
, Car(start: 01, end: 42, arr.t.: 00, delay: 00, est: 54, tot.arr.t: 00, order: 16) |
|||
, Car(start: 29, end: 66, arr.t.: 00, delay: 00, est: 38, tot.arr.t: 00, order: 17) |
|||
, Car(start: 42, end: 78, arr.t.: 00, delay: 00, est: 21, tot.arr.t: 00, order: 18) |
|||
, Car(start: 67, end: 80, arr.t.: 00, delay: 00, est: 25, tot.arr.t: 00, order: 19) |
|||
, Car(start: 48, end: 52, arr.t.: 00, delay: 00, est: 29, tot.arr.t: 00, order: 20) |
|||
, Car(start: 24, end: 60, arr.t.: 00, delay: 00, est: 49, tot.arr.t: 00, order: 21) |
|||
, Car(start: 40, end: 44, arr.t.: 00, delay: 00, est: 41, tot.arr.t: 00, order: 22) |
|||
, Car(start: 52, end: 58, arr.t.: 00, delay: 00, est: 03, tot.arr.t: 00, order: 23) |
|||
, Car(start: 39, end: 76, arr.t.: 00, delay: 00, est: 05, tot.arr.t: 00, order: 24) |
|||
] |
|||
sec: 1: |
|||
sec: 2: |
|||
sec: 3: (23) |
|||
sec: 4: (11) (23) |
|||
sec: 5: (11) (24) (23) |
|||
sec: 6: (11) (24) (23) |
|||
sec: 7: (11) (05) (24) (23) |
|||
sec: 8: (11) (05) (24) (23) |
|||
sec: 9: (11) (05) (24) (23) (02) |
|||
sec: 10: (11) (05) (24) (02) |
|||
sec: 11: (11) (05) (24) (02) |
|||
sec: 12: (11) (05) (24) (02) |
|||
sec: 13: (11) (05) (24) (02) |
|||
sec: 14: (11) (05) (24) (02) |
|||
sec: 15: (10) (11) (05) (24) (02) |
|||
sec: 16: (10) (11) (05) (24) (02) |
|||
sec: 17: (10) (11) (05) (24) (02) |
|||
sec: 18: (10) (11) (05) (24) (02) |
|||
sec: 19: (10) (11) (05) (24) |
|||
sec: 20: (13) (10) (11) (24) |
|||
sec: 21: (13) (10) (11) (18) (24) (14) |
|||
sec: 22: (13) (10) (11) (18) (24) (14) |
|||
sec: 23: (13) (10) (11) (18) (24) (14) |
|||
sec: 24: (13) (10) (11) (18) (24) |
|||
sec: 25: (13) (10) (11) (18) (24) (19) |
|||
sec: 26: (13) (10) (11) (18) (24) (19) |
|||
sec: 27: (13) (10) (11) (18) (24) (19) |
|||
sec: 28: (13) (10) (11) (18) (24) (19) |
|||
sec: 29: (15) (09) (13) (10) (11) (20) (18) (24) (19) |
|||
sec: 30: (15) (09) (13) (10) (11) (20) (18) (24) (01) (19) |
|||
sec: 31: (15) (09) (13) (10) (11) (20) (18) (24) (01) (19) |
|||
sec: 32: (15) (04) (09) (13) (10) (11) (20) (18) (24) (01) (19) |
|||
sec: 33: (15) (04) (09) (13) (10) (20) (18) (24) (01) (19) |
|||
sec: 34: (15) (04) (09) (13) (10) (18) (06) (24) (01) (19) |
|||
sec: 35: (07) (15) (04) (09) (13) (10) (18) (06) (24) (01) (19) |
|||
sec: 36: (07) (15) (04) (09) (13) (10) (18) (24) (01) (19) |
|||
sec: 37: (07) (15) (04) (09) (13) (10) (18) (24) (01) (19) |
|||
sec: 38: (07) (15) (04) (09) (13) (10) (18) (24) (01) |
|||
sec: 39: (07) (17) (04) (09) (13) (10) (12) (18) (24) (01) |
|||
sec: 40: (07) (17) (04) (09) (13) (10) (12) (18) (24) (01) |
|||
sec: 41: (07) (17) (22) (04) (09) (13) (10) (12) (18) (24) |
|||
sec: 42: (07) (17) (22) (04) (09) (13) (10) (00) (18) (24) |
|||
sec: 43: (07) (17) (22) (04) (09) (13) (10) (00) (18) |
|||
sec: 44: (07) (17) (22) (04) (09) (13) (10) (18) |
|||
sec: 45: (07) (17) (22) (04) (09) (13) (10) (18) |
|||
sec: 46: (07) (08) (17) (22) (04) (09) (13) (10) (18) |
|||
sec: 47: (07) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 48: (07) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 49: (21) (07) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 50: (21) (07) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 51: (21) (07) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 52: (21) (07) (03) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 53: (21) (07) (03) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 54: (16) (21) (07) (03) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 55: (16) (21) (07) (03) (08) (17) (04) (09) (13) (10) (18) |
|||
sec: 56: (16) (21) (07) (03) (08) (17) (09) (13) (10) (18) |
|||
sec: 57: (16) (21) (07) (03) (08) (17) (09) (13) (10) (18) |
|||
sec: 58: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 59: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 60: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 61: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 62: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 63: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 64: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 65: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 66: (16) (21) (03) (08) (17) (09) (13) (10) |
|||
sec: 67: (16) (21) (03) (08) (17) (10) |
|||
sec: 68: (16) (21) (03) (08) (17) (10) |
|||
sec: 69: (16) (21) (03) (08) (17) |
|||
sec: 70: (16) (21) (03) (08) (17) |
|||
sec: 71: (16) (21) (03) (08) (17) |
|||
sec: 72: (16) (21) (03) (08) (17) |
|||
sec: 73: (16) (21) (03) (08) (17) |
|||
sec: 74: (16) (21) (03) (08) (17) |
|||
sec: 75: (16) (21) (03) (08) (17) |
|||
sec: 76: (16) (21) (03) (08) (17) |
|||
sec: 77: (16) (21) (03) (08) |
|||
sec: 78: (16) (21) (03) |
|||
sec: 79: (16) (21) (03) |
|||
sec: 80: (16) (21) (03) |
|||
sec: 81: (16) (21) (03) |
|||
sec: 82: (16) (21) (03) |
|||
sec: 83: (16) (21) (03) |
|||
sec: 84: (16) (21) |
|||
sec: 85: (16) (21) |
|||
sec: 86: (16) |
|||
sec: 87: (16) |
|||
sec: 88: (16) |
|||
sec: 89: (16) |
|||
sec: 90: (16) |
|||
sec: 91: (16) |
|||
sec: 92: (16) |
|||
sec: 93: (16) |
|||
sec: 94: (16) |
|||
sec: 95: (16) |
|||
sec: 96: |
|||
Copy Cars: [ Car(start: 61, end: 62, arr.t.: 44, delay: 00, est: 41, tot.arr.t: 44, order: 00) |
|||
, Car(start: 68, end: 78, arr.t.: 41, delay: 00, est: 30, tot.arr.t: 41, order: 01) |
|||
, Car(start: 64, end: 73, arr.t.: 19, delay: 00, est: 09, tot.arr.t: 19, order: 02) |
|||
, Car(start: 37, end: 68, arr.t.: 84, delay: 00, est: 52, tot.arr.t: 84, order: 03) |
|||
, Car(start: 33, end: 55, arr.t.: 56, delay: 00, est: 28, tot.arr.t: 56, order: 04) |
|||
, Car(start: 31, end: 43, arr.t.: 20, delay: 00, est: 07, tot.arr.t: 20, order: 05) |
|||
, Car(start: 66, end: 67, arr.t.: 36, delay: 00, est: 32, tot.arr.t: 36, order: 06) |
|||
, Car(start: 19, end: 40, arr.t.: 58, delay: 00, est: 34, tot.arr.t: 58, order: 07) |
|||
, Car(start: 34, end: 65, arr.t.: 78, delay: 00, est: 44, tot.arr.t: 78, order: 08) |
|||
, Car(start: 32, end: 68, arr.t.: 67, delay: 00, est: 26, tot.arr.t: 67, order: 09) |
|||
, Car(start: 22, end: 74, arr.t.: 69, delay: 00, est: 14, tot.arr.t: 69, order: 10) |
|||
, Car(start: 13, end: 41, arr.t.: 33, delay: 00, est: 04, tot.arr.t: 33, order: 11) |
|||
, Car(start: 47, end: 49, arr.t.: 42, delay: 00, est: 39, tot.arr.t: 42, order: 12) |
|||
, Car(start: 25, end: 70, arr.t.: 67, delay: 00, est: 20, tot.arr.t: 67, order: 13) |
|||
, Car(start: 58, end: 60, arr.t.: 24, delay: 00, est: 21, tot.arr.t: 24, order: 14) |
|||
, Car(start: 21, end: 30, arr.t.: 39, delay: 00, est: 29, tot.arr.t: 39, order: 15) |
|||
, Car(start: 01, end: 42, arr.t.: 96, delay: 00, est: 54, tot.arr.t: 96, order: 16) |
|||
, Car(start: 29, end: 66, arr.t.: 77, delay: 00, est: 38, tot.arr.t: 77, order: 17) |
|||
, Car(start: 42, end: 78, arr.t.: 58, delay: 00, est: 21, tot.arr.t: 58, order: 18) |
|||
, Car(start: 67, end: 80, arr.t.: 39, delay: 00, est: 25, tot.arr.t: 39, order: 19) |
|||
, Car(start: 48, end: 52, arr.t.: 34, delay: 00, est: 29, tot.arr.t: 34, order: 20) |
|||
, Car(start: 24, end: 60, arr.t.: 86, delay: 00, est: 49, tot.arr.t: 86, order: 21) |
|||
, Car(start: 40, end: 44, arr.t.: 47, delay: 00, est: 41, tot.arr.t: 47, order: 22) |
|||
, Car(start: 52, end: 58, arr.t.: 10, delay: 00, est: 03, tot.arr.t: 10, order: 23) |
|||
, Car(start: 39, end: 76, arr.t.: 43, delay: 00, est: 05, tot.arr.t: 43, order: 24) |
|||
] |
|||
Cars in initial order:[ Car(start: 61, end: 62, arr.t.: 44, delay: 00, est: 41, tot.arr.t: 44, order: 00) |
|||
, Car(start: 68, end: 78, arr.t.: 41, delay: 00, est: 30, tot.arr.t: 41, order: 01) |
|||
, Car(start: 64, end: 73, arr.t.: 19, delay: 00, est: 09, tot.arr.t: 19, order: 02) |
|||
, Car(start: 37, end: 68, arr.t.: 84, delay: 00, est: 52, tot.arr.t: 84, order: 03) |
|||
, Car(start: 33, end: 55, arr.t.: 56, delay: 00, est: 28, tot.arr.t: 56, order: 04) |
|||
, Car(start: 31, end: 43, arr.t.: 20, delay: 00, est: 07, tot.arr.t: 20, order: 05) |
|||
, Car(start: 66, end: 67, arr.t.: 36, delay: 00, est: 32, tot.arr.t: 36, order: 06) |
|||
, Car(start: 19, end: 40, arr.t.: 58, delay: 00, est: 34, tot.arr.t: 58, order: 07) |
|||
, Car(start: 34, end: 65, arr.t.: 78, delay: 00, est: 44, tot.arr.t: 78, order: 08) |
|||
, Car(start: 32, end: 68, arr.t.: 67, delay: 00, est: 26, tot.arr.t: 67, order: 09) |
|||
, Car(start: 22, end: 74, arr.t.: 69, delay: 00, est: 14, tot.arr.t: 69, order: 10) |
|||
, Car(start: 13, end: 41, arr.t.: 33, delay: 00, est: 04, tot.arr.t: 33, order: 11) |
|||
, Car(start: 47, end: 49, arr.t.: 42, delay: 00, est: 39, tot.arr.t: 42, order: 12) |
|||
, Car(start: 25, end: 70, arr.t.: 67, delay: 00, est: 20, tot.arr.t: 67, order: 13) |
|||
, Car(start: 58, end: 60, arr.t.: 24, delay: 00, est: 21, tot.arr.t: 24, order: 14) |
|||
, Car(start: 21, end: 30, arr.t.: 39, delay: 00, est: 29, tot.arr.t: 39, order: 15) |
|||
, Car(start: 01, end: 42, arr.t.: 96, delay: 00, est: 54, tot.arr.t: 96, order: 16) |
|||
, Car(start: 29, end: 66, arr.t.: 77, delay: 00, est: 38, tot.arr.t: 77, order: 17) |
|||
, Car(start: 42, end: 78, arr.t.: 58, delay: 00, est: 21, tot.arr.t: 58, order: 18) |
|||
, Car(start: 67, end: 80, arr.t.: 39, delay: 00, est: 25, tot.arr.t: 39, order: 19) |
|||
, Car(start: 48, end: 52, arr.t.: 34, delay: 00, est: 29, tot.arr.t: 34, order: 20) |
|||
, Car(start: 24, end: 60, arr.t.: 86, delay: 00, est: 49, tot.arr.t: 86, order: 21) |
|||
, Car(start: 40, end: 44, arr.t.: 47, delay: 00, est: 41, tot.arr.t: 47, order: 22) |
|||
, Car(start: 52, end: 58, arr.t.: 10, delay: 00, est: 03, tot.arr.t: 10, order: 23) |
|||
, Car(start: 39, end: 76, arr.t.: 43, delay: 00, est: 05, tot.arr.t: 43, order: 24) |
|||
] |
|||
Ordered due to start segment: [ Car(start: 01, end: 42, arr.t.: 96, delay: 00, est: 54, tot.arr.t: 96, order: 16) |
|||
, Car(start: 13, end: 41, arr.t.: 33, delay: 00, est: 04, tot.arr.t: 33, order: 11) |
|||
, Car(start: 19, end: 40, arr.t.: 58, delay: 00, est: 34, tot.arr.t: 58, order: 07) |
|||
, Car(start: 21, end: 30, arr.t.: 39, delay: 00, est: 29, tot.arr.t: 39, order: 15) |
|||
, Car(start: 22, end: 74, arr.t.: 69, delay: 00, est: 14, tot.arr.t: 69, order: 10) |
|||
, Car(start: 24, end: 60, arr.t.: 86, delay: 00, est: 49, tot.arr.t: 86, order: 21) |
|||
, Car(start: 25, end: 70, arr.t.: 67, delay: 00, est: 20, tot.arr.t: 67, order: 13) |
|||
, Car(start: 29, end: 66, arr.t.: 77, delay: 00, est: 38, tot.arr.t: 77, order: 17) |
|||
, Car(start: 31, end: 43, arr.t.: 20, delay: 00, est: 07, tot.arr.t: 20, order: 05) |
|||
, Car(start: 32, end: 68, arr.t.: 67, delay: 00, est: 26, tot.arr.t: 67, order: 09) |
|||
, Car(start: 33, end: 55, arr.t.: 56, delay: 00, est: 28, tot.arr.t: 56, order: 04) |
|||
, Car(start: 34, end: 65, arr.t.: 78, delay: 00, est: 44, tot.arr.t: 78, order: 08) |
|||
, Car(start: 37, end: 68, arr.t.: 84, delay: 00, est: 52, tot.arr.t: 84, order: 03) |
|||
, Car(start: 39, end: 76, arr.t.: 43, delay: 00, est: 05, tot.arr.t: 43, order: 24) |
|||
, Car(start: 40, end: 44, arr.t.: 47, delay: 00, est: 41, tot.arr.t: 47, order: 22) |
|||
, Car(start: 42, end: 78, arr.t.: 58, delay: 00, est: 21, tot.arr.t: 58, order: 18) |
|||
, Car(start: 47, end: 49, arr.t.: 42, delay: 00, est: 39, tot.arr.t: 42, order: 12) |
|||
, Car(start: 48, end: 52, arr.t.: 34, delay: 00, est: 29, tot.arr.t: 34, order: 20) |
|||
, Car(start: 52, end: 58, arr.t.: 10, delay: 00, est: 03, tot.arr.t: 10, order: 23) |
|||
, Car(start: 58, end: 60, arr.t.: 24, delay: 00, est: 21, tot.arr.t: 24, order: 14) |
|||
, Car(start: 61, end: 62, arr.t.: 44, delay: 00, est: 41, tot.arr.t: 44, order: 00) |
|||
, Car(start: 64, end: 73, arr.t.: 19, delay: 00, est: 09, tot.arr.t: 19, order: 02) |
|||
, Car(start: 66, end: 67, arr.t.: 36, delay: 00, est: 32, tot.arr.t: 36, order: 06) |
|||
, Car(start: 67, end: 80, arr.t.: 39, delay: 00, est: 25, tot.arr.t: 39, order: 19) |
|||
, Car(start: 68, end: 78, arr.t.: 41, delay: 00, est: 30, tot.arr.t: 41, order: 01) |
|||
] |
|||
Ordered due to earliest start times: [ Car(start: 52, end: 58, arr.t.: 10, delay: 00, est: 03, tot.arr.t: 10, order: 23) |
|||
, Car(start: 13, end: 41, arr.t.: 33, delay: 00, est: 04, tot.arr.t: 33, order: 11) |
|||
, Car(start: 39, end: 76, arr.t.: 43, delay: 00, est: 05, tot.arr.t: 43, order: 24) |
|||
, Car(start: 31, end: 43, arr.t.: 20, delay: 00, est: 07, tot.arr.t: 20, order: 05) |
|||
, Car(start: 64, end: 73, arr.t.: 19, delay: 00, est: 09, tot.arr.t: 19, order: 02) |
|||
, Car(start: 22, end: 74, arr.t.: 69, delay: 00, est: 14, tot.arr.t: 69, order: 10) |
|||
, Car(start: 25, end: 70, arr.t.: 67, delay: 00, est: 20, tot.arr.t: 67, order: 13) |
|||
, Car(start: 58, end: 60, arr.t.: 24, delay: 00, est: 21, tot.arr.t: 24, order: 14) |
|||
, Car(start: 42, end: 78, arr.t.: 58, delay: 00, est: 21, tot.arr.t: 58, order: 18) |
|||
, Car(start: 67, end: 80, arr.t.: 39, delay: 00, est: 25, tot.arr.t: 39, order: 19) |
|||
, Car(start: 32, end: 68, arr.t.: 67, delay: 00, est: 26, tot.arr.t: 67, order: 09) |
|||
, Car(start: 33, end: 55, arr.t.: 56, delay: 00, est: 28, tot.arr.t: 56, order: 04) |
|||
, Car(start: 21, end: 30, arr.t.: 39, delay: 00, est: 29, tot.arr.t: 39, order: 15) |
|||
, Car(start: 48, end: 52, arr.t.: 34, delay: 00, est: 29, tot.arr.t: 34, order: 20) |
|||
, Car(start: 68, end: 78, arr.t.: 41, delay: 00, est: 30, tot.arr.t: 41, order: 01) |
|||
, Car(start: 66, end: 67, arr.t.: 36, delay: 00, est: 32, tot.arr.t: 36, order: 06) |
|||
, Car(start: 19, end: 40, arr.t.: 58, delay: 00, est: 34, tot.arr.t: 58, order: 07) |
|||
, Car(start: 29, end: 66, arr.t.: 77, delay: 00, est: 38, tot.arr.t: 77, order: 17) |
|||
, Car(start: 47, end: 49, arr.t.: 42, delay: 00, est: 39, tot.arr.t: 42, order: 12) |
|||
, Car(start: 61, end: 62, arr.t.: 44, delay: 00, est: 41, tot.arr.t: 44, order: 00) |
|||
, Car(start: 40, end: 44, arr.t.: 47, delay: 00, est: 41, tot.arr.t: 47, order: 22) |
|||
, Car(start: 34, end: 65, arr.t.: 78, delay: 00, est: 44, tot.arr.t: 78, order: 08) |
|||
, Car(start: 24, end: 60, arr.t.: 86, delay: 00, est: 49, tot.arr.t: 86, order: 21) |
|||
, Car(start: 37, end: 68, arr.t.: 84, delay: 00, est: 52, tot.arr.t: 84, order: 03) |
|||
, Car(start: 01, end: 42, arr.t.: 96, delay: 00, est: 54, tot.arr.t: 96, order: 16) |
|||
] |
|||
Result: 44,41,19,84,56,20,36,58,78,67,69,33,42,67,24,39,96,77,58,39,34,86,47,10,43 |
|||
|
|||
Process finished with exit code 0 |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<groupId>at.salento</groupId> |
|||
<artifactId>CloudflightCodingContest</artifactId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
|
|||
<properties> |
|||
<maven.compiler.source>21</maven.compiler.source> |
|||
<maven.compiler.target>21</maven.compiler.target> |
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
|||
</properties> |
|||
<dependencies> |
|||
<dependency> |
|||
<groupId>org.junit.jupiter</groupId> |
|||
<artifactId>junit-jupiter-api</artifactId> |
|||
<version>5.10.0</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.junit.jupiter</groupId> |
|||
<artifactId>junit-jupiter-params</artifactId> |
|||
<version>5.10.0</version> |
|||
<scope>test</scope> |
|||
</dependency> |
|||
</dependencies> |
|||
|
|||
</project> |
|||
@ -0,0 +1,135 @@ |
|||
package at.salento; |
|||
|
|||
public class Car { |
|||
private int startSegment; |
|||
private int endSegment; |
|||
|
|||
private int arrivalTime; |
|||
private int order; |
|||
|
|||
private int earliestStartTime; // introduced in level 2
|
|||
|
|||
private int delay; |
|||
|
|||
private boolean entered = false; |
|||
|
|||
private boolean toRemove = false; // not used at the moment
|
|||
|
|||
public Car() { |
|||
this.startSegment = 0; |
|||
this.endSegment = 0; |
|||
this.arrivalTime = 0; |
|||
this.order = 0; |
|||
this.delay = 0; |
|||
} |
|||
|
|||
public Car(int start, int end, int duraction) { |
|||
this.startSegment = start; |
|||
this.endSegment = end; |
|||
this.arrivalTime = duraction; |
|||
this.order = 0; |
|||
this.delay = 0; |
|||
} |
|||
|
|||
public Car(int start, int end, int duration, int order) { |
|||
this.startSegment = start; |
|||
this.endSegment = end; |
|||
this.arrivalTime = duration; |
|||
this.order = order; |
|||
this.delay = 0; |
|||
} |
|||
|
|||
public int getStartSegment() { |
|||
return startSegment; |
|||
} |
|||
|
|||
public void setStartSegment(int startSegment) { |
|||
this.startSegment = startSegment; |
|||
} |
|||
|
|||
public int getEndSegment() { |
|||
return endSegment; |
|||
} |
|||
|
|||
public void setEndSegment(int endSegment) { |
|||
this.endSegment = endSegment; |
|||
} |
|||
|
|||
public int getOrder() { |
|||
return order; |
|||
} |
|||
|
|||
public void setOrder(int order) { |
|||
this.order = order; |
|||
} |
|||
|
|||
public int getArrivalTime() { |
|||
return arrivalTime; |
|||
} |
|||
|
|||
public void setArrivalTime(int arrivalTime) { |
|||
this.arrivalTime = arrivalTime; |
|||
} |
|||
|
|||
public void increaseArrivalTime() { |
|||
this.arrivalTime++; |
|||
} |
|||
|
|||
public int getDelay() { |
|||
return delay; |
|||
} |
|||
|
|||
public void increaseDelay() { |
|||
this.delay++; |
|||
} |
|||
|
|||
public void setDelay(int delay) { |
|||
this.delay = delay; |
|||
} |
|||
|
|||
public int getTotalArrivalTime() { |
|||
return this.arrivalTime + this.delay; |
|||
} |
|||
|
|||
public boolean isEntered() { |
|||
return entered; |
|||
} |
|||
|
|||
public void setEntered(boolean entered) { |
|||
this.entered = entered; |
|||
} |
|||
|
|||
public boolean isToRemove() { |
|||
return toRemove; |
|||
} |
|||
|
|||
public void setToRemove(boolean toRemove) { |
|||
this.toRemove = toRemove; |
|||
} |
|||
|
|||
public int getEarliestStartTime() { |
|||
return earliestStartTime; |
|||
} |
|||
|
|||
public void setEarliestStartTime(int earliestStartTime) { |
|||
this.earliestStartTime = earliestStartTime; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
String viz = ""; |
|||
for (int i = 0; i< startSegment; i++) viz += " "; |
|||
viz += "|"; |
|||
for (int i = startSegment +1; i < endSegment; i++) viz += "-"; |
|||
viz += "|"; |
|||
// for (int i=)
|
|||
return String.format(" Car(start: %02d", startSegment) |
|||
+ String.format(", end: %02d", endSegment) |
|||
+ String.format(", arr.t.: %02d", arrivalTime) |
|||
+ String.format(", delay: %02d", delay) |
|||
+ String.format(", est: %02d", earliestStartTime) |
|||
+ String.format(", tot.arr.t: %02d", getTotalArrivalTime()) |
|||
+ String.format(", order: %02d", order) |
|||
+ ") " + "\n"; |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package at.salento; |
|||
|
|||
public class CccException extends RuntimeException { |
|||
|
|||
public CccException(String msg, Throwable t) { |
|||
super(msg, t); |
|||
} |
|||
|
|||
public CccException(String msg) { |
|||
super(msg); |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
package at.salento; |
|||
|
|||
public abstract class ComputationBase { |
|||
|
|||
protected int level; |
|||
|
|||
public ComputationBase(int level) { |
|||
this.level = level; |
|||
} |
|||
|
|||
public void start(int fromLevel, int toLevel) { |
|||
String inputFilenameTemplate = "files/level" + level + "/level" + level + "_"; |
|||
String outputFilenameTemplate = "files/level" + level + "/level" + level + "_"; |
|||
|
|||
for (int i=fromLevel; i<=toLevel; i++) { |
|||
String inputFilename = inputFilenameTemplate + i + ".in"; |
|||
String outputFilename = outputFilenameTemplate + i + ".out"; |
|||
startForInstance(inputFilename,outputFilename); |
|||
} |
|||
|
|||
} |
|||
|
|||
protected abstract void startForInstance(String inputFilename, String outputFilename); |
|||
|
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
package at.salento; |
|||
|
|||
import java.io.*; |
|||
import java.util.ArrayList; |
|||
|
|||
public class FileIoBase { |
|||
|
|||
|
|||
protected String inputFileName; |
|||
protected String outputFileName; |
|||
protected ArrayList<String> lines = new ArrayList<>(); |
|||
public ArrayList<String> result = new ArrayList<>(); |
|||
|
|||
public FileIoBase(String inputFileName, String outputFileName) { |
|||
this.inputFileName = inputFileName; |
|||
this.outputFileName = outputFileName; |
|||
} |
|||
|
|||
public void readData() { |
|||
try (BufferedReader br = new BufferedReader(new FileReader(inputFileName))) { |
|||
String line = br.readLine(); |
|||
while (line != null) { |
|||
lines.add(line); |
|||
line = br.readLine(); |
|||
} |
|||
} catch (FileNotFoundException e) { |
|||
throw new RuntimeException(e); |
|||
} catch (IOException e) { |
|||
throw new RuntimeException(e); |
|||
} |
|||
} |
|||
|
|||
public void writeToFile() { |
|||
try (BufferedWriter bw = new BufferedWriter(new FileWriter(outputFileName))) { |
|||
for (String line : result) { |
|||
bw.write(line + "\n"); |
|||
} |
|||
} catch (IOException e) { |
|||
throw new RuntimeException(e); |
|||
} |
|||
} |
|||
|
|||
public String getLine(int idx) { |
|||
if (lines != null) { |
|||
if (idx >= 0 && idx < lines.size()) { |
|||
return lines.get(idx); |
|||
} else { |
|||
throw new CccException("Invalid index: " + idx + " in method getLine."); |
|||
} |
|||
} else { |
|||
throw new CccException("Error: lines is null!"); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
String ret = "Inputfile\n"; |
|||
for (int i=0; i<lines.size(); i++) { |
|||
ret += String.format("Line %03d", i) + ": " + lines.get(i) + "\n"; |
|||
} |
|||
return ret; |
|||
} |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
package at.salento; |
|||
|
|||
import at.salento.level2.Level2Computation; |
|||
|
|||
public class Main { |
|||
|
|||
public static void main(String[] args) { |
|||
// ComputationBase l1 = new Level1ComputationNew();
|
|||
// l1.start(2, 2);
|
|||
ComputationBase l2 = new Level2Computation(); |
|||
l2.start(3, 3); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,119 @@ |
|||
package at.salento.level1; |
|||
|
|||
import at.salento.Car; |
|||
import at.salento.ComputationBase; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Collections; |
|||
import java.util.Comparator; |
|||
import java.util.List; |
|||
import java.util.stream.Collectors; |
|||
|
|||
|
|||
public class Level1ComputationSimulation extends ComputationBase { |
|||
|
|||
private Level1Io level1Io; |
|||
private int nSegments; |
|||
private int nLines; |
|||
|
|||
|
|||
private ArrayList<Car> cars; |
|||
private ArrayList<Car> copyCars; |
|||
|
|||
public Level1ComputationSimulation() { |
|||
super(1); |
|||
} |
|||
|
|||
protected void startForInstance(String input, String computed) { |
|||
level1Io = new Level1Io(input, computed); |
|||
level1Io.readData(); |
|||
nSegments = Integer.valueOf(level1Io.getLine(0)); |
|||
nLines = Integer.valueOf(level1Io.getLine(1)); |
|||
|
|||
prepareCars(); |
|||
simulate(); |
|||
System.out.println("Copy Cars: " + copyCars); |
|||
|
|||
List<Car> c3 = copyCars.stream() |
|||
.filter(x -> x != null) |
|||
.collect(Collectors.toList()); |
|||
|
|||
c3.sort(Comparator.comparing(Car::getOrder)); |
|||
|
|||
System.out.println("Cars in initial order:" + c3); |
|||
|
|||
ArrayList<Car> orderedStartSegmentCars = new ArrayList<>(c3); |
|||
orderedStartSegmentCars.sort(Comparator.comparing(Car::getStartSegment)); |
|||
|
|||
System.out.println("Ordered due to start segment: " + orderedStartSegmentCars); |
|||
String strResult = buildResultString(c3); |
|||
|
|||
System.out.println("Result: " + strResult); |
|||
level1Io.result.add(strResult); |
|||
level1Io.writeToFile(); |
|||
} |
|||
|
|||
private void prepareCars() { |
|||
cars = new ArrayList<>(Collections.nCopies(nSegments+1, null)); |
|||
|
|||
int order = 0; |
|||
for (int i=2; i < nLines+2; i++) { |
|||
Car c = createCarFromString(level1Io.getLine(i)); |
|||
c.setOrder(order++); |
|||
cars.set(c.getStartSegment(), c); |
|||
} |
|||
|
|||
copyCars = new ArrayList<>(cars); |
|||
|
|||
System.out.println("Cars:" + cars); |
|||
} |
|||
|
|||
|
|||
|
|||
private void simulate() { |
|||
for (int sec=1; sec < (2*nSegments+2); sec++) { |
|||
for (int i=0; i<=nSegments; i++) { |
|||
if (cars.get(i) != null) { |
|||
cars.get(i).increaseArrivalTime(); |
|||
if (i < cars.get(i).getEndSegment()) { |
|||
if (cars.get(i + 1) == null) { |
|||
cars.set(i + 1, cars.get(i)); |
|||
cars.set(i, null); |
|||
i++; |
|||
} |
|||
|
|||
} else { |
|||
cars.set(i, null); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
private static Car createCarFromString(String line) { |
|||
String[] tokens = line.split(","); |
|||
int start = Integer.valueOf(tokens[0]); |
|||
|
|||
int end = Integer.valueOf(tokens[1]); |
|||
// int result = end - start + 2;
|
|||
return new Car(start, end, 1); |
|||
} |
|||
|
|||
private String buildResultString(List<Car> cars) { |
|||
String strResult = ""; |
|||
boolean first = true; |
|||
for (int i=0; i<cars.size(); i++) { |
|||
if (cars.get(i) != null) { |
|||
if (!first) { |
|||
strResult += ","; |
|||
} else { |
|||
first = false; |
|||
} |
|||
|
|||
strResult += cars.get(i).getTotalArrivalTime(); |
|||
} |
|||
} |
|||
return strResult; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
package at.salento.level1; |
|||
|
|||
import at.salento.FileIoBase; |
|||
|
|||
public class Level1Io extends FileIoBase { |
|||
public Level1Io(String inputFileName, String outputFileName) { |
|||
super(inputFileName, outputFileName); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,188 @@ |
|||
package at.salento.level2; |
|||
|
|||
import at.salento.Car; |
|||
import at.salento.ComputationBase; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Collections; |
|||
import java.util.Comparator; |
|||
import java.util.List; |
|||
import java.util.stream.Collectors; |
|||
|
|||
|
|||
public class Level2Computation extends ComputationBase { |
|||
|
|||
private Level2Io level2Io; |
|||
private int nSegments; |
|||
private int nLines; |
|||
|
|||
|
|||
private ArrayList<Car> queue; |
|||
private ArrayList<Car> cars; |
|||
private ArrayList<Car> copyCars; |
|||
|
|||
public Level2Computation() { |
|||
super(2); |
|||
} |
|||
|
|||
protected void startForInstance(String input, String computed) { |
|||
level2Io = new Level2Io(input, computed); |
|||
level2Io.readData(); |
|||
nSegments = Integer.valueOf(level2Io.getLine(0)); |
|||
nLines = Integer.valueOf(level2Io.getLine(1)); |
|||
|
|||
prepareCars(); |
|||
simulate(); |
|||
System.out.println("Copy Cars: " + copyCars); |
|||
|
|||
List<Car> c3 = copyCars.stream() |
|||
.filter(x -> x != null) |
|||
.collect(Collectors.toList()); |
|||
|
|||
c3.sort(Comparator.comparing(Car::getOrder)); |
|||
|
|||
System.out.println("Cars in initial order:" + c3); |
|||
|
|||
ArrayList<Car> orderedStartSegmentCars = new ArrayList<>(c3); |
|||
orderedStartSegmentCars.sort(Comparator.comparing(Car::getStartSegment)); |
|||
|
|||
ArrayList<Car> orderedStartTimes = new ArrayList<>(c3); |
|||
orderedStartTimes.sort(Comparator.comparing(Car::getEarliestStartTime)); |
|||
|
|||
System.out.println("Ordered due to start segment: " + orderedStartSegmentCars); |
|||
System.out.println("Ordered due to earliest start times: " + orderedStartTimes); |
|||
String strResult = buildResultString(c3); |
|||
|
|||
System.out.println("Result: " + strResult); |
|||
level2Io.result.add(strResult); |
|||
level2Io.writeToFile(); |
|||
} |
|||
|
|||
private void prepareCars() { |
|||
cars = new ArrayList<>(Collections.nCopies(nSegments+1, null)); |
|||
queue = new ArrayList<>(); |
|||
|
|||
|
|||
int order = 0; |
|||
for (int i=2; i < nLines+2; i++) { |
|||
Car c = createCarFromString(level2Io.getLine(i)); |
|||
c.setOrder(order++); |
|||
queue.add(c); |
|||
} |
|||
copyCars = new ArrayList<>(queue); |
|||
|
|||
|
|||
System.out.println("Queue:" + queue); |
|||
} |
|||
|
|||
|
|||
|
|||
private void simulate() { |
|||
int sec = 0; |
|||
|
|||
do { |
|||
|
|||
sec++; |
|||
|
|||
|
|||
// place new cars
|
|||
for (int i = 0; i < queue.size(); i++) { |
|||
Car c = queue.get(i); |
|||
int nextSeg = c.getStartSegment(); |
|||
// if (nextSeg < nSegments) nextSeg++;
|
|||
int lastSeg = c.getStartSegment(); |
|||
if (lastSeg > 0) lastSeg--; |
|||
if (c.getEarliestStartTime() <= sec |
|||
&& cars.get(c.getStartSegment()) == null |
|||
&& cars.get(nextSeg) == null |
|||
&& cars.get(lastSeg) == null |
|||
) |
|||
{ |
|||
// System.out.println("in second " + sec + " placing car " + c);
|
|||
queue.remove(i); |
|||
cars.set(c.getStartSegment(), c); |
|||
c.setEntered(true); |
|||
} |
|||
} |
|||
|
|||
System.out.println("befor sim sec: " + sec + ": " + buildCarString()); |
|||
// simulate for current second
|
|||
for (int i = 1; i <= nSegments; i++) { |
|||
Car c = cars.get(i); |
|||
if (c != null) { |
|||
if (!c.isEntered()) { |
|||
if (i < c.getEndSegment()) { |
|||
if (cars.get(i + 1) == null) { |
|||
cars.set(i + 1, c); |
|||
cars.set(i, null); |
|||
i++; |
|||
} |
|||
} else { |
|||
c.setToRemove(true); |
|||
c.setArrivalTime(sec); |
|||
cars.set(i, null); |
|||
} |
|||
} else { |
|||
c.setEntered(false); |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
System.out.println("after sim sec: " + sec + ": " + buildCarString()); |
|||
} while (!(cars.stream().filter(e -> (e != null)).count() == 0 && queue.isEmpty())); |
|||
} |
|||
|
|||
|
|||
/* |
|||
this example shows, that car (9) enters segment wrongly, as it was not empty in previous second! |
|||
sec: 28: (8) (2) (3) |
|||
sec: 29: (8) (2) (9) (3) |
|||
sec: 30: (8) (2) (9) (3) |
|||
sec: 31: (8) (2) (9) (3) |
|||
|
|||
with this bugfix 2_1 works |
|||
|
|||
*/ |
|||
private static Car createCarFromString(String line) { |
|||
String[] tokens = line.split(","); |
|||
System.out.println(line); |
|||
int start = Integer.valueOf(tokens[0]); |
|||
|
|||
int end = Integer.valueOf(tokens[1]); |
|||
int startTime = Integer.valueOf(tokens[2]); |
|||
// int result = end - start + 2;
|
|||
Car c = new Car(start, end, 0); |
|||
c.setEarliestStartTime(startTime); |
|||
return c; |
|||
} |
|||
|
|||
private String buildResultString(List<Car> cars) { |
|||
String strResult = ""; |
|||
boolean first = true; |
|||
for (int i=0; i<cars.size(); i++) { |
|||
if (cars.get(i) != null) { |
|||
if (!first) { |
|||
strResult += ","; |
|||
} else { |
|||
first = false; |
|||
} |
|||
strResult += cars.get(i).getTotalArrivalTime(); |
|||
} |
|||
} |
|||
return strResult; |
|||
} |
|||
|
|||
private String buildCarString() { |
|||
String str = ""; |
|||
for (int i=0; i<nSegments; i++) { |
|||
if (cars.get(i) != null) { |
|||
str += "(" + String.format("%02d", cars.get(i).getOrder()) + ") "; |
|||
} else { |
|||
str += " "; |
|||
} |
|||
} |
|||
return str; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
package at.salento.level2; |
|||
|
|||
import at.salento.FileIoBase; |
|||
|
|||
public class Level2Io extends FileIoBase { |
|||
public Level2Io(String inputFileName, String outputFileName) { |
|||
super(inputFileName, outputFileName); |
|||
} |
|||
} |
|||
@ -0,0 +1,79 @@ |
|||
package at.salento.level1; |
|||
|
|||
import at.salento.ComputationBase; |
|||
import org.junit.jupiter.api.BeforeEach; |
|||
import org.junit.jupiter.api.Test; |
|||
import org.junit.jupiter.params.ParameterizedTest; |
|||
import org.junit.jupiter.params.provider.CsvSource; |
|||
|
|||
import java.io.BufferedInputStream; |
|||
import java.io.FileInputStream; |
|||
import java.io.IOException; |
|||
import java.nio.file.Path; |
|||
|
|||
|
|||
import static org.junit.jupiter.api.Assertions.*; |
|||
|
|||
class Level1Testcases { |
|||
private ComputationBase comp; |
|||
|
|||
@BeforeEach |
|||
void setUp() { |
|||
comp = new Level1ComputationSimulation(); |
|||
} |
|||
|
|||
@Test |
|||
void validateInstance1() { |
|||
comp.start(1, 1); |
|||
Path out = Path.of("files/level1/level1_1.out"); |
|||
Path sol = Path.of("files/level1/level1_1.sol"); |
|||
|
|||
try { |
|||
long fileCompare = filesCompareByByte(out, sol); |
|||
assertEquals(-1L, fileCompare); // !?
|
|||
} catch (IOException e) { |
|||
fail("Exception in file handling: " + e.getMessage()); |
|||
} |
|||
} |
|||
|
|||
@ParameterizedTest |
|||
@CsvSource({"1,1", "1,2", "1,3", "1,4", "1, 5", "1, 6"}) |
|||
void validateInstance2(int level, int testcase) { |
|||
String p1 = "files/level" + level + "/level" + level + "_"; |
|||
String f1 = p1 + testcase + ".out"; |
|||
String f2 = p1 + testcase + ".sol"; |
|||
comp.start(testcase, testcase); |
|||
Path out = Path.of(f1); |
|||
Path sol = Path.of(f2); |
|||
|
|||
try { |
|||
long fileCompare = filesCompareByByte(out, sol); |
|||
assertEquals(-1L, fileCompare); // !?
|
|||
} catch (IOException e) { |
|||
fail("Exception in file handling: " + e.getMessage()); |
|||
} |
|||
} |
|||
|
|||
|
|||
// Source: https://www.baeldung.com/java-compare-files
|
|||
long filesCompareByByte(Path path1, Path path2) throws IOException { |
|||
try (BufferedInputStream fis1 = new BufferedInputStream(new FileInputStream(path1.toFile())); |
|||
BufferedInputStream fis2 = new BufferedInputStream(new FileInputStream(path2.toFile()))) { |
|||
|
|||
int ch = 0; |
|||
long pos = 1; |
|||
while ((ch = fis1.read()) != -1) { |
|||
if (ch != fis2.read()) { |
|||
return pos; |
|||
} |
|||
pos++; |
|||
} |
|||
if (fis2.read() == -1) { |
|||
return -1; |
|||
} |
|||
else { |
|||
return pos; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,110 @@ |
|||
package at.salento.level1; |
|||
|
|||
import at.salento.ComputationBase; |
|||
import at.salento.level2.Level2Computation; |
|||
import org.junit.jupiter.api.BeforeEach; |
|||
import org.junit.jupiter.api.Disabled; |
|||
import org.junit.jupiter.api.Test; |
|||
import org.junit.jupiter.params.ParameterizedTest; |
|||
import org.junit.jupiter.params.provider.CsvSource; |
|||
|
|||
import java.io.BufferedInputStream; |
|||
import java.io.FileInputStream; |
|||
import java.io.IOException; |
|||
import java.nio.file.Path; |
|||
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals; |
|||
import static org.junit.jupiter.api.Assertions.fail; |
|||
|
|||
class Level2Testcases { |
|||
private ComputationBase comp; |
|||
|
|||
@BeforeEach |
|||
void setUp() { |
|||
comp = new Level2Computation(); |
|||
} |
|||
|
|||
@Test |
|||
void validateInstance0() { |
|||
comp.start(0, 0); |
|||
Path out = Path.of("files/level2/level2_0.out"); |
|||
Path sol = Path.of("files/level2/level2_0.sol"); |
|||
|
|||
try { |
|||
long fileCompare = filesCompareByByte(out, sol); |
|||
assertEquals(-1L, fileCompare); // !?
|
|||
} catch (IOException e) { |
|||
fail("Exception in file handling: " + e.getMessage()); |
|||
} |
|||
} |
|||
|
|||
@Test |
|||
void validateInstance1() { |
|||
comp.start(1, 1); |
|||
Path out = Path.of("files/level2/level2_1.out"); |
|||
Path sol = Path.of("files/level2/level2_1.sol"); |
|||
|
|||
try { |
|||
long fileCompare = filesCompareByByte(out, sol); |
|||
assertEquals(-1L, fileCompare); // !?
|
|||
} catch (IOException e) { |
|||
fail("Exception in file handling: " + e.getMessage()); |
|||
} |
|||
} |
|||
|
|||
@Test |
|||
void validateInstance2() { |
|||
comp.start(2, 2); |
|||
Path out = Path.of("files/level2/level2_2.out"); |
|||
Path sol = Path.of("files/level2/level2_2.sol"); |
|||
|
|||
try { |
|||
long fileCompare = filesCompareByByte(out, sol); |
|||
assertEquals(-1L, fileCompare); // !?
|
|||
} catch (IOException e) { |
|||
fail("Exception in file handling: " + e.getMessage()); |
|||
} |
|||
} |
|||
|
|||
@Disabled |
|||
@ParameterizedTest |
|||
@CsvSource({"1,1", "1,2", "1,3", "1,4", "1, 5", "1, 6"}) |
|||
void validateInstance2(int level, int testcase) { |
|||
String p1 = "files/level" + level + "/level" + level + "_"; |
|||
String f1 = p1 + testcase + ".out"; |
|||
String f2 = p1 + testcase + ".sol"; |
|||
comp.start(testcase, testcase); |
|||
Path out = Path.of(f1); |
|||
Path sol = Path.of(f2); |
|||
|
|||
try { |
|||
long fileCompare = filesCompareByByte(out, sol); |
|||
assertEquals(-1L, fileCompare); // !?
|
|||
} catch (IOException e) { |
|||
fail("Exception in file handling: " + e.getMessage()); |
|||
} |
|||
} |
|||
|
|||
|
|||
// Source: https://www.baeldung.com/java-compare-files
|
|||
long filesCompareByByte(Path path1, Path path2) throws IOException { |
|||
try (BufferedInputStream fis1 = new BufferedInputStream(new FileInputStream(path1.toFile())); |
|||
BufferedInputStream fis2 = new BufferedInputStream(new FileInputStream(path2.toFile()))) { |
|||
|
|||
int ch = 0; |
|||
long pos = 1; |
|||
while ((ch = fis1.read()) != -1) { |
|||
if (ch != fis2.read()) { |
|||
return pos; |
|||
} |
|||
pos++; |
|||
} |
|||
if (fis2.read() == -1) { |
|||
return -1; |
|||
} |
|||
else { |
|||
return pos; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue