83分,有特判未投完就结束的情况,#5WA了
  • 板块P1166 打保龄球
  • 楼主Mo_xue
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/18 00:19
  • 上次更新2023/11/2 19:22:43
查看原帖
83分,有特判未投完就结束的情况,#5WA了
626838
Mo_xue楼主2023/9/18 00:19
#include <bits/stdc++.h>
using namespace std;
char op[3];
int a[20][2],n,result[20];
bool vis[20];
int main()
{
	memset(a,-1,sizeof a);
	while(cin>>op){
		n++;
		if (op[0]=='/'){a[n][0]=10;}
		else{
			a[n][0]=op[0]-'0';
			if (op[1]=='/') a[n][1]=10-a[n][0];
			else a[n][1]=op[1]-'0';
		}
	}
	for (int i=1;i<=n;i++){
		if (a[i][0]==-1||(a[i][0]<10&&a[i][1]==-1)){vis[i]=1;break;}
		if (a[i][0]==10){
			result[i]=10;
			if (i+1>n||a[i+1][0]==-1){vis[i]=1;break;}
			result[i]+=a[i+1][0];
			if (a[i+1][1]!=-1) result[i]+=a[i+1][1];
			else{
				if (i+2>n||a[i+2][0]==-1){vis[i]=1;break;}
				result[i]+=a[i+2][0];
			}
		}
		else if (a[i][0]+a[i][1]==10){
			result[i]=10;
			if (i+1>n||a[i+1][0]==-1){vis[i]=1;break;}
			result[i]+=a[i+1][0];
		}
		else{
			if (a[i][0]==-1){vis[i]=1;break;}
			if (a[i][1]==-1){vis[i]=1;break;}
			result[i]=a[i][0]+a[i][1];
		} 
	}
	for (int i=1;i<=10;i++){
		if (!vis[i]) printf("%d ",result[i]);
		else break;
	}
	puts("");
	for (int i=1;i<=10;i++){
		if (!vis[i]){
			result[i]=result[i-1]+result[i];
			printf("%d ",result[i]);
		}
		else break;
	}
	return 0;
}

too long on line one,哪位大佬帮忙看看,拜谢!

2023/9/18 00:19
加载中...