Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
adc2018-system
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
adc2018
adc2018-system
Commits
fee62f0c
Commit
fee62f0c
authored
Aug 25, 2018
by
royus
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
got output (unfinished)
parent
30596494
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
19 deletions
+53
-19
.gitignore
source/.gitignore
+1
-1
solve.sh
source/solve.sh
+38
-0
solver.c
source/solver.c
+14
-18
No files found.
source/.gitignore
View file @
fee62f0c
tags
tags
tags.lock
tags.lock
.
x_
*
.*
source/solve.sh
0 → 100644
View file @
fee62f0c
#!/bin/sh
# solve.sh
# Last Change: 2018/08/26 (Sun) 05:34:14.
./.x_solver < ../ADC2017_Q_A/all/Q/Q01.txt
>>
myans/A01.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q02.txt
>>
myans/A02.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q03.txt
>>
myans/A03.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q04.txt
>>
myans/A04.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q05.txt
>>
myans/A05.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q06.txt
>>
myans/A06.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q07.txt
>>
myans/A07.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q08.txt
>>
myans/A08.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q09.txt
>>
myans/A09.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q10.txt
>>
myans/A10.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q11.txt
>>
myans/A11.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q12.txt
>>
myans/A12.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q13.txt
>>
myans/A13.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q14.txt
>>
myans/A14.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q15.txt
>>
myans/A15.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q16.txt
>>
myans/A16.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q17.txt
>>
myans/A17.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q18.txt
>>
myans/A18.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q19.txt
>>
myans/A19.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q20.txt
>>
myans/A20.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q21.txt
>>
myans/A21.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q22.txt
>>
myans/A22.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q23.txt
>>
myans/A23.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q24.txt
>>
myans/A24.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q25.txt
>>
myans/A25.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q26.txt
>>
myans/A26.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q27.txt
>>
myans/A27.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q28.txt
>>
myans/A28.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q29.txt
>>
myans/A29.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q30.txt
>>
myans/A30.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q31.txt
>>
myans/A31.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q32.txt
>>
myans/A32.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q33.txt
>>
myans/A33.txt &
./.x_solver < ../ADC2017_Q_A/all/Q/Q34.txt
>>
myans/A34.txt &
source/solver.c
View file @
fee62f0c
/* solver.c */
/* solver.c */
/* Last Change: 2018/08/26 (Sun) 05:
04:28
. */
/* Last Change: 2018/08/26 (Sun) 05:
26:10
. */
#define MAX_ATTEMPS
lines*1
0
#define MAX_ATTEMPS
10000
0
#include<stdio.h>
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
...
@@ -77,23 +77,19 @@ int randline(void){ //1-lines -> 1-lines
...
@@ -77,23 +77,19 @@ int randline(void){ //1-lines -> 1-lines
return
rand
()
%
lines
+
1
;
return
rand
()
%
lines
+
1
;
}
}
void
shuffle
(
int
array
[]){
for
(
int
i
=
0
;
i
<
6
;
i
++
){
int
j
=
rand
()
%
6
;
int
t
=
array
[
i
];
array
[
i
]
=
array
[
j
];
array
[
j
]
=
t
;
}
}
int
available
(
int
startx
,
int
starty
,
int
startz
){
int
available
(
int
startx
,
int
starty
,
int
startz
){
if
(
avail
[
startz
][
starty
][
startx
]
==-
1
)
//goal
if
(
avail
[
startz
][
starty
][
startx
]
==-
1
)
//goal
return
1
;
return
1
;
if
(
avail
[
startz
][
starty
][
startx
]
==
2
)
//visited
if
(
avail
[
startz
][
starty
][
startx
]
==
2
||
avail
[
startz
][
starty
][
startx
]
==
3
)
//visited
return
0
;
return
0
;
avail
[
startz
][
starty
][
startx
]
=
2
;
avail
[
startz
][
starty
][
startx
]
=
2
;
shuffle
(
searchorder
);
int
i
,
j
,
k
;
int
i
;
for
(
i
=
0
;
i
<
6
;
i
++
){
j
=
rand
()
%
6
;
k
=
searchorder
[
i
];
searchorder
[
i
]
=
searchorder
[
j
];
searchorder
[
j
]
=
k
;
}
for
(
i
=
0
;
i
<
6
;
i
++
)
for
(
i
=
0
;
i
<
6
;
i
++
)
switch
(
searchorder
[
i
]){
switch
(
searchorder
[
i
]){
case
0
:
case
0
:
...
@@ -124,7 +120,7 @@ int connectable(int linea,int lineb){
...
@@ -124,7 +120,7 @@ int connectable(int linea,int lineb){
for
(
i
=
0
;
i
<
depth
;
i
++
)
for
(
i
=
0
;
i
<
depth
;
i
++
)
for
(
j
=
0
;
j
<
height
;
j
++
)
for
(
j
=
0
;
j
<
height
;
j
++
)
for
(
k
=
0
;
k
<
width
;
k
++
)
for
(
k
=
0
;
k
<
width
;
k
++
)
if
(
board
[
i
][
j
][
k
]
==
-
linea
){
if
(
board
[
i
][
j
][
k
]
==
linea
*
(
-
1
)
){
if
(
notfound
){
if
(
notfound
){
notfound
=
0
;
notfound
=
0
;
startz
=
i
;
startz
=
i
;
...
@@ -151,7 +147,7 @@ void connect(int num){
...
@@ -151,7 +147,7 @@ void connect(int num){
for
(
i
=
0
;
i
<
depth
;
i
++
)
for
(
i
=
0
;
i
<
depth
;
i
++
)
for
(
j
=
0
;
j
<
height
;
j
++
)
for
(
j
=
0
;
j
<
height
;
j
++
)
for
(
k
=
0
;
k
<
width
;
k
++
)
for
(
k
=
0
;
k
<
width
;
k
++
)
if
(
avail
[
i
][
j
][
k
]
==
2
)
if
(
avail
[
i
][
j
][
k
]
==
2
&&
board
[
i
][
j
][
k
]
==
0
)
board
[
i
][
j
][
k
]
=
num
;
board
[
i
][
j
][
k
]
=
num
;
return
;
return
;
}
}
...
@@ -180,7 +176,7 @@ int solve(void){ //return 1 when solved, 0 when cannot
...
@@ -180,7 +176,7 @@ int solve(void){ //return 1 when solved, 0 when cannot
return
1
;
return
1
;
}
}
else
{
else
{
for
(
j
=
0
;
j
<
lines
*
2
;
j
++
){
for
(
j
=
0
;
j
<
MAX_ATTEMPS
;
j
++
){
lineb
=
randline
();
lineb
=
randline
();
if
(
connectable
(
linea
,
lineb
)){
if
(
connectable
(
linea
,
lineb
)){
delete
(
lineb
);
delete
(
lineb
);
...
@@ -189,7 +185,7 @@ int solve(void){ //return 1 when solved, 0 when cannot
...
@@ -189,7 +185,7 @@ int solve(void){ //return 1 when solved, 0 when cannot
connected
[
lineb
]
=
0
;
connected
[
lineb
]
=
0
;
break
;
break
;
}
}
if
(
j
==
MAX_ATTEMPS
/
2
-
1
)
if
(
j
==
MAX_ATTEMPS
-
1
)
return
0
;
return
0
;
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment