怎么看都不知道哪里错了
  • 板块P1148 拱猪计分
  • 楼主eb0ycn
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/25 18:59
  • 上次更新2024/1/25 20:51:01
查看原帖
怎么看都不知道哪里错了
536337
eb0ycn楼主2024/1/25 18:59

看着很合理啊

#include <bits/stdc++.h>
using namespace std;
int a,b,c,d,val;
const int hong[14]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
int pai[17][4],fen[4],tag1,tag2,tag3,tag4;
char tot;
void input()
{
	for(int i=1;i<17;++i)for(int j=0;j<4;++j)pai[i][j]=0;
	for(int i=0;i<4;++i)fen[i]=0;
	for(int j=0;j<4;++j)
	{
		scanf("%d",&a);
		b+=a;
		for(int i=1;i<=a;++i)
		{
			tot=getchar();
			while(tot==' ')tot=getchar();
			scanf("%d",&val);
			if(tot=='H')++pai[val][j],fen[j]+=hong[val];
			if(tot=='S'&&val==12)++pai[14][j];
			if(tot=='D'&&val==11)++pai[15][j];
			if(tot=='C'&&val==10)++pai[16][j];
		}
	}
}

int main()
{
//	freopen("A.in","r",stdin);
//	freopen("A.out","w",stdout);
	while(1)
	{
		b=0;
		tag4=tag1=tag2=tag3=-1;
		input();
		if(!b)break;
		for(int i=0;i<4;++i)
		{
			if(fen[i]==-194)tag1=i;
			if(pai[14][i])tag2=i;
			if(pai[15][i])tag3=i;
			if(pai[16][i])tag4=i;
		}
		if(~tag1)
		{
			fen[tag1]=200;
			if(tag1==tag2&&tag2==tag3)fen[tag1]=500;
		}
		if(~tag2)fen[tag2]-=100;
		if(~tag3)fen[tag3]+=100;
		if(~tag4)fen[tag4]=fen[tag4]?fen[tag4]<<1:50;
		for(int i=0;i<4;++i)
		{
			if(fen[i]>0)printf("+%d ",fen[i]);
			else printf("%d ",fen[i]);
		}
		printf("\n");
	}
	return 0;
}
2024/1/25 18:59
加载中...