#20127: 求救RE (SIGSEGV) 記憶體區段錯誤! Segmentation fault (core dumped)


089487 (089487)

學校 : 國立臺灣師範大學附屬高級中學
編號 : 82069
來源 : [220.130.10.185]
最後登入時間 :
2024-04-01 11:16:18
d913. 1. 彈珠配置 -- 99學年度全國資訊學科能力競賽 | From: [111.71.105.23] | 發表日期 : 2019-12-04 22:05

#include<bits/stdc++.h>
using namespace std;
int l[6][6];
int correct[6];
int answer[6];
//void dfs(int a,int r);
bool trued(int a);
int main(){
//ios::sync_with_stdio(0);
//cin.tie(0);
memset(answer,0,sizeof(answer));
for(int i=0;i<6;++i){
for(int j=0;j<6;++j) cin>>l[i][j];
cin>>correct[i];
}
int a=0,r=1;
bool f2[100];
memset(f2,0,sizeof(f2));
while(1){
if(a>5) break;
while(r<=6&&f2[r-1]) r++;
if(r>6)
{
answer[a]=0;
//f[a]=0;
a--;
r=answer[a];
f2[r-1]=0;
r++;
continue;
}
answer[a]=r;
f2[r-1]=1;
if(trued(a)){
a++;
r=1;

}
else{
f2[r-1]=0;
answer[a]=0;
a--;
r=answer[a];
f2[r-1]=0;
r++;
}

}
for(auto i:answer){ cout<<i<<" ";
}
cout<<"\n";
}
inline bool trued(int a){
/*for(int i=0;i<6;i++) {
if(count(answer,answer+6,i)>1) return 0;
}
cout<<a<<"\n";*/
for(int i=0;i<6;i++){
int k=0;
for(int j=0;j<6;j++){
if(answer[j]==l[i][j]) k++;
}
if((k!=correct[i]&&a==5)||k>correct[i]) return 0;
}
//cout<<"return true";
return 1;
}

 
ZeroJudge Forum