IAKIOI
查看原帖
IAKIOI
457794
xbqlht21楼主2024/8/17 22:21

标题吸引人吧

70求调

#include<bits/stdc++.h>
using namespace std;
string s1[1005];
string s2[1005][1005];
string ss[1005];
int a[1005];
int k[1005];
bool l[1005];
int m;
map<string,int> c;
bool f(string ss1[],string ss2[])
{
	for(int i=1;i<=m;i++)
	{
		int h=c[ss[i]];
		if(ss1[h]!=ss2[h])
		{
			if(!a[i])
			{
				return ss1[h]>ss2[h];
			}
			else
			{
				return ss1[h]<ss2[h];
			}
		}
	}
	return 0;
}
string sss(string s)
{
	int x=0;
	string s1="";
	while(s[x]==' ')
	{
		x++;
	}
	for(;x<s.size();x++)
	{
		s1+=s[x];
	}
	return s1;
}
bool g(string s)
{
	for(int i=0;i<s.size();i++)
	{
		if(!('0'<=s[i]&&s[i]<='9'))
		{
			return 0;
		}
	}
	return 1;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,x=1;
	cin>>n;
	n--;
	string s;
	cin>>s;
	cout<<s<<"\n";
	for(int i=0;i<s.size();i++)
	{
		if(s[i]==',')
		{
			x++;
		}
		else
		{
			s1[x]+=s[i];
		}
	}
	for(int i=1;i<=x;i++)
	{
		c[s1[i]]=i;
	}
	for(int i=1;i<=n;i++)
	{
		int z=1;
		cin>>s;
		for(int j=0;j<s.size();j++)
		{
			if(s[j]==',')
			{
				z++;
			}
			else
			{
				s2[i][z]+=s[j];
			}
		}
	}
	for(int i=1;i<=x;i++)
	{
		if(g(s2[1][i]))
		{
			int z=0;
			for(int j=1;j<=n;j++)
			{
				z=max(z,(int)s2[j][i].size());
			}
			for(int j=1;j<=n;j++)
			{
				int o=z-s2[j][i].size();
				for(int k=1;k<=o;k++)
				{
					s2[j][i]=" "+s2[j][i];
				}
			}
		}
	}
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>ss[i];
		a[i]=(ss[i][ss[i].size()-1]=='+');
		ss[i].erase(ss[i].size()-1,1);
//		cout<<ss[i]<<"\n";
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(f(s2[i],s2[j]))
			{
				swap(s2[j],s2[i]);
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<x;j++)
		{
			cout<<sss(s2[i][j])<<',';
		}
		cout<<sss(s2[i][x])<<"\n";
	}
	return 0;
}
2024/8/17 22:21
加载中...