比赛 20120217 评测结果 AAAAAAAAAA
题目名称 编码问题 最终得分 100
用户昵称 QhelDIV 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-02-17 20:03:03
显示代码纯文本
#include <fstream>
#include <memory.h>
using namespace std;
ifstream fin("code.in");
ofstream fout("code.out");
int Order,N,M,S[102],S1[102],S2[102];
class Node 
{
public:
	int Data;
	Node *ext;
};
void Initialize()
{
	fin>>N>>M;
}

void Solve1()
{
int i,j;	
	for(i=1;i<=M;i++)
	{
		fin>>S[i];
		for(j=1;j<i;j++)
			if(S[i]>S[j])
				S1[i]++;
	}
	for(i=1;i<=M;i++)
		fout<<S1[i]<<" ";
	fout<<endl;
}

void Solve2()
{
Node *pnt=new Node,*last=pnt;
int i,j;
	for(i=1;i<=M;i++)
	{
		fin>>S[i];
		last->Data=i-1;
		last->ext=new Node;
		last=last->ext;
	}
	for(i=M;i>=1;i--)
	{
		last=pnt;
		for(j=1;j<=S[i];j++)
			last=last->ext;
		S2[i]=last->Data;
		last->Data=last->ext->Data;
		last->ext=last->ext->ext;
	}
	for(i=1;i<=M;i++)
		fout<<S2[i]<<" ";
	fout<<endl;
	
}

int main()
{
int i;
	Initialize();
	for(i=1;i<=N;i++)	
	{
		fin>>Order;
		memset(S,0,sizeof(S));
		memset(S1,0,sizeof(S));
		memset(S2,0,sizeof(S));
		if(Order==1)
			Solve1();
		else
			Solve2();
	}
	fin.close();
	fout.close();
	return 0;
}