51pts求助
  • 板块P1166 打保龄球
  • 楼主Xuher
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/9 23:42
  • 上次更新2024/8/10 09:26:57
查看原帖
51pts求助
1105339
Xuher楼主2024/8/9 23:42
#include<bits/stdc++.h>
using namespace std;
int a[13][3];
int df[13];
int sa[13]; 
int main()
{
	char f;
	for(int i=1;i<=9;i++)
	{
		f=getchar();//读入第1发
		if(f=='/')//全中 
		{
			a[i][1]=10;
			a[i][2]=-1;
			getchar();//读空格
			continue;//进入下一轮
		}
		a[i][1]=f-'0';//第1轮第1发计积分
		f=getchar();//读第2发
		if(f=='/')//补中
		{
			//a[i][1]=-1;
			a[i][2]=10-a[i][1];
		} 
		else
		a[i][2]=f-'0';//仍然有未打掉的
	//	a[i][1]=-2;
		getchar(); //读空格
	}
	f=getchar();
	if(f=='/')//第十轮全中 
	{
		a[10][1]=10;
		a[10][2]=-1 ;
		getchar();//读空格
		f=getchar();//补一轮
		if(f=='/')//补一轮全中
		{
			
			a[11][1]+=10;
			a[11][2]=-1; 
			getchar();//读空格
			f=getchar();//补二轮 
			if(f=='/') 
			a[12][1]+=10;
			else
			a[12][1]+=f-'0'; 
		}
		else//补一轮未全中
		{
			a[11][1]+=f-'0';
			f=getchar();
			if(f=='/')//补一轮第2发
			a[11][2]=10-a[11][1];
			else
			a[11][2]+=f-'0';
			
		}
	}
	else 
	{
		a[10][1]=f-'0';
		f=getchar() ;//第10轮第2发
		if(f=='/')//第10轮补中
		{
			a[10][2]=10-a[10][1];
			getchar();//空格
			f=getchar();
			if(f=='/')
			{
				a[11][1]=10;
			}
			else
			{
				a[11][1]=f-'0';
			}
		}
		else
		{
			a[10][2]=f-'0';
		}
	}
	//for(int i=1;i<=12;i++)
	//{
	//	cout<<a[i][1]<<'/'<<a[i][2]<<' ';
	//}
	//cout<<endl;
	for(int i=1;i<=10;cout<<df[i++]<<" ")
	{
		if(a[i][2]==-1)
		{
			df[i]+=10+a[i+1][1];
			if(a[i+1][2]==-1)
			df[i]+=a[i+2][1];
			else
			df[i]+=a[i+1][2]; 
			continue;
		}
		if(a[i][1]+a[i][2]==10)
		{
			df[i]+=10;
			df[i]+=a[i+1][1];
			continue;
		}
		df[i]=a[i][1]+a[i][2];
	}
	cout<<endl;
	sa[1]=df[1];
	cout<<sa[1];
	for(int i=2;i<=10;i++)
	{
		sa[i]=sa[i-1]+df[i];
		cout<<' '<<sa[i];
	}	
	return 0;
}

1#、2#、5# too long on line one

2024/8/9 23:42
加载中...