#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main(){
int T[9];
while(cin>>T[0]){
int O;
vector<int> P[9];
for(int n=0;n<T[0];++n){
string s;
cin>>s;
if(s=="1B"){
P[0].push_back(1);
}else if(s=="2B"){
P[0].push_back(2);
}else if(s=="3B"){
P[0].push_back(3);
}else if(s=="HR"){
P[0].push_back(4);
}else if(s=="FO"){
P[0].push_back(-1);
}else if(s=="GO"){
P[0].push_back(-1);
}else if(s=="SO"){
P[0].push_back(-1);
}
}
for(int t=1;t<9;++t){
cin>>T[t];
for(int n=0;n<T[t];++n){
string s;
cin>>s;
if(s=="1B"){
P[t].push_back(1);
}else if(s=="2B"){
P[t].push_back(2);
}else if(s=="3B"){
P[t].push_back(3);
}else if(s=="HR"){
P[t].push_back(4);
}else if(s=="FO"){
P[t].push_back(-1);
}else if(s=="GO"){
P[t].push_back(-1);
}else if(s=="SO"){
P[t].push_back(-1);
}
}
}
cin>>O;
int r=0,B=0,p=0,ans=0,o=0;
bool L[4]={false};
while(O-o>0){
L[0]=true;
if(P[p][r]==1){
for(int a=3;a>=0;--a){
if(L[a]){
if(a==3){
ans+=1;
}else{
L[a]=false;
L[a+1]=true;
}
}
}
}else if(P[p][r]==2){
for(int a=3;a>=0;--a){
if(L[a]){
if(a==3||a==2){
ans+=1;
L[a]=false;
}else{
L[a]=false;
L[a+2]=true;
}
}
}
}else if(P[p][r]==3){
for(int a=3;a>=0;--a){
if(L[a]){
if(a==3||a==2||a==1){
ans+=1;
L[a]=false;
}else{
L[a]=false;
L[a+3]=true;
}
}
}
}else if(P[p][r]==4){
for(int a=3;a>=0;--a){
if(L[a]){
if(a==3||a==2||a==1||a==0){
L[a]=false;
ans+=1;
}
}
}
}else if(P[p][r]==-1){
++o;
if(o%3==0&&o!=0){
for(int a=1;a<4;++a){
L[a]=false;
}
}
}
if(p!=8){
p+=1;
}else{
p=0;
r+=1;
}
}
cout<<ans<<endl;
}
}
這樣打的問題在哪QAQ?
還有範例二中
第一打者 打一壘安打
第二打者 也打一壘安打
但它下面說明彷彿直接無視
我是真D矇
回應範例測資的問題:
因為範例一與範例二的打擊狀況是一致的,只有看的出局數不一樣。因此題目下方的說明有著一句
(範例二說明)接 續範例一, 達到第三個出局數時 未得分,壘上清空。
表示它是接續著範例一的測資說明,再接著說明範例二的測資狀況。
以上。希望有幫到您。
回應範例測資的問題:
因為範例一與範例二的打擊狀況是一致的,只有看的出局數不一樣。因此題目下方的說明有著一句
(範例二說明)接 續範例一, 達到第三個出局數時 未得分,壘上清空。
表示它是接續著範例一的測資說明,再接著說明範例二的測資狀況。
以上。希望有幫到您。
非常感謝 我終於弄懂了
然後程式的部分問題我也找到了 我一壘安打三壘忘記得分後要清空了:P