Commit fee62f0c authored by royus's avatar royus

got output (unfinished)

parent 30596494
#!/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 &
/* solver.c */
/* Last Change: 2018/08/26 (Sun) 05:04:28. */
/* Last Change: 2018/08/26 (Sun) 05:26:10. */
#define MAX_ATTEMPS lines*10
#define MAX_ATTEMPS 100000
#include<stdio.h>
#include<stdlib.h>
......@@ -77,23 +77,19 @@ int randline(void){ //1-lines -> 1-lines
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){
if(avail[startz][starty][startx]==-1) //goal
return 1;
if(avail[startz][starty][startx]==2) //visited
if(avail[startz][starty][startx]==2||avail[startz][starty][startx]==3) //visited
return 0;
avail[startz][starty][startx]=2;
shuffle(searchorder);
int i;
int i,j,k;
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++)
switch(searchorder[i]){
case 0:
......@@ -124,7 +120,7 @@ int connectable(int linea,int lineb){
for(i=0;i<depth;i++)
for(j=0;j<height;j++)
for(k=0;k<width;k++)
if(board[i][j][k]==-linea){
if(board[i][j][k]==linea*(-1)){
if(notfound){
notfound=0;
startz=i;
......@@ -151,7 +147,7 @@ void connect(int num){
for(i=0;i<depth;i++)
for(j=0;j<height;j++)
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;
return;
}
......@@ -180,7 +176,7 @@ int solve(void){ //return 1 when solved, 0 when cannot
return 1;
}
else{
for(j=0;j<lines*2;j++){
for(j=0;j<MAX_ATTEMPS;j++){
lineb=randline();
if(connectable(linea,lineb)){
delete(lineb);
......@@ -189,7 +185,7 @@ int solve(void){ //return 1 when solved, 0 when cannot
connected[lineb]=0;
break;
}
if(j==MAX_ATTEMPS/2-1)
if(j==MAX_ATTEMPS-1)
return 0;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment