#26426: 解題+簡易說明


markshirley114 (23沈江宥810)

學校 : 臺北市私立延平高級中學
編號 : 128528
來源 : [203.72.178.2]
最後登入時間 :
2022-06-14 15:05:30
c297. APCS-2016-1029-4棒球遊戲 -- 2016年10月APCS | From: [111.184.43.221] | 發表日期 : 2021-08-06 13:49

 

//以上省略

//宣告為全域變數陣列。b[]->代表是否上壘,b[1]==true->上一壘 

bool b[4];

int convert(string s)//打擊結果->壘包數 

{

if(s.compare("1B")==0)return 1;//傳回壘包數 

if(s.compare("2B")==0)return 2;

if(s.compare("3B")==0)return 3;

if(s.compare("HR")==0)return 4;

if(s.compare("FO")==0)return 0;

if(s.compare("GO")==0)return 0;

if(s.compare("SO")==0)return 0;

}

int run(int c)

{

int temps=0;

for(int i=3;i>=1;i--)

{

if(b[i])

{

if((i+c)>=4)

{

temps++;b[i]=false;

}

else

{

b[i+c]=true;b[i]=false;

}

}

}

if(c==4)temps++;else b[c]=true;

return temps;

}

int main()

{

int p[9][5],n[9],out,tempout,score;

string s;

for(int i=0;i<9;i++)

{

cin>>n[i];

for(int j=0;j<n[i];j++)

{

cin>>s;

p[i][j]=convert(s);

}

}

cin>>out;

tempout=0;

score=0;

for(int i=1;i<4;i++)b[i]=false;

for(int j=0;j<5&&tempout<out;j++)

{

for(int i=0;i<9&&tempout<out;i++)

{

if(p[i][j]>0)score+=run(p[i][j]);

else

{

tempout++;//暫時出局數 

if(tempout%3==0)for(int k=1;k<4;k++)b[k]=false;

}       //三出局            //清空1~3壘包 

}

}

cout<<score<<endl;

}

 

 
ZeroJudge Forum