比赛 20120217 评测结果 AAAAAAAAAA
题目名称 编码问题 最终得分 100
用户昵称 Yeehok 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-02-17 21:11:41
显示代码纯文本
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("code.in");
ofstream fout("code.out");
int a[2001],m=0,n=0;
void one()
{
	for(int i=0;i<n;i++)
	{
		fin>>a[i];
	}
	int s=0;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<i;j++)
		{
			if(a[j]<a[i])
			{
				s++;
			}
		}
		fout<<s<<' ';
		s=0;
	}
	fout<<endl;
}
void two()
{
	int ans[2001][2];
	memset(ans,0,sizeof(ans));
	for(int i=0;i<n;i++)
	{
		fin>>a[i];
	}
	int tot=0;
	int top=-1,s=-1;
	for(int i=0;i<n;i++)
	{
		tot=a[i];
		if(tot==0)
		{
			ans[++top][0]=++s;
		}
		else
		{
			for(int j=top+1;j>=top-tot+1;j--)
			{
				ans[j][0]=ans[j-1][0];
			}
			top++;
			ans[top-tot][0]=++s;
		}
	}
	s=n;
	for(int i=0;i<n;i++)
	{
		ans[i][1]=--s;
	}
	s=0;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(ans[j][0]==s)
			{
				fout<<ans[j][1]<<' ';
				ans[j][0]=-1;
				s++;
			}
		}
	}
	fout<<endl;
}
int main()
{
	fin>>m>>n;
	int tmp=0;
	for(int num=0;num<m;num++)
	{
		fin>>tmp;
		if(!(tmp-1))
		{
			one();
		}
		else
		{
			two();
		}
	}
	fin.close();
	fout.close();
	return (0);
}