记录编号 |
35250 |
评测结果 |
AAAAAAAAAA |
题目名称 |
编码问题 |
最终得分 |
100 |
用户昵称 |
QhelDIV |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.039 s |
提交时间 |
2012-02-18 21:41:38 |
内存使用 |
0.27 MiB |
显示代码纯文本
#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;
}