社区讨论

83分,有特判未投完就结束的情况,#5WA了

P1166打保龄球参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo1cthnz
此快照首次捕获于
2023/10/22 18:56
2 年前
此快照最后确认于
2023/11/02 19:22
2 年前
查看原帖
CPP
#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,哪位大佬帮忙看看,拜谢!

回复

0 条回复,欢迎继续交流。

正在加载回复...