zoj1201
2015-07-26 15:57
337 查看
这题好恶心- -规律找了好久
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int num;
while(cin >> num && num)
{
int nums[50],Queue[50];
char flag;
memset(Queue,0,sizeof(Queue));
cin >> flag;
for(int m = 0;m<num;m++)
cin >> nums[m];
if(flag == 'P')
{
for(int m = num - 1;m>=0;m--)
{
int zero = 0;
for(int u = m - 1;u>=0;u--)
{
if(nums[m] < nums[u])
zero++;
}
Queue[nums[m]-1] = zero;
}
}
else
{
for(int m = 0;m<num;m++)
{
int zero = 0;
for(int u = 0;u<num;u++)
{
if(Queue[u] == 0)
zero++;
if(zero == nums[m]+1)
{
Queue[u] = m + 1;
break;
}
}
}
}
for(int m = 0;m<num;m++)
{
cout << Queue[m];
if(m != num - 1)
cout << ' ';
else cout << endl;
}
}
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int num;
while(cin >> num && num)
{
int nums[50],Queue[50];
char flag;
memset(Queue,0,sizeof(Queue));
cin >> flag;
for(int m = 0;m<num;m++)
cin >> nums[m];
if(flag == 'P')
{
for(int m = num - 1;m>=0;m--)
{
int zero = 0;
for(int u = m - 1;u>=0;u--)
{
if(nums[m] < nums[u])
zero++;
}
Queue[nums[m]-1] = zero;
}
}
else
{
for(int m = 0;m<num;m++)
{
int zero = 0;
for(int u = 0;u<num;u++)
{
if(Queue[u] == 0)
zero++;
if(zero == nums[m]+1)
{
Queue[u] = m + 1;
break;
}
}
}
}
for(int m = 0;m<num;m++)
{
cout << Queue[m];
if(m != num - 1)
cout << ' ';
else cout << endl;
}
}
return 0;
}
相关文章推荐
- JAVA基础之理解JNI原理
- Fragment FragmentManager FragmentTransaction 详解
- 1003. 我要通过!
- Word Break
- onInterceptTouchEvent 与 onTouchEvent 分析与MotionEvent在ViewGroup与View中的分发
- matlab cosd,cos,acos,acosd
- IT架构——降低成本和复杂性
- 安卓模拟器研究-root
- [leedcode 133] Clone Graph
- 选择排序
- July Number zoj3436
- 大小写转换
- Oracle OLAP 与 OLTP 介绍
- 【峰回路转】Excel技巧百例 04.两个表的左连接
- iOS中对NSArray中自定义的对象进行排序
- Fragment
- 将tomcat添加为 linux service 服务
- Xamrin开发安卓笔记(二)
- HTML5基础20----Web Storage概述
- MySQL架构方案