试题 历届真题 双向排序【第十二届】【省赛】【B组】
题目要求
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
提示
本题主要考虑时间问题,以及数字范围问题;
只得了60分
代码实现
#include<bits/stdc++.h>
using namespace std;
long long int a[100010];
bool cmp(long long int a,long long int b)
{
return a>b;
}
int main()
{
long long int n,m;
cin>>n>>m;
for(long long int i=0;i<n;i++)
a[i]=i+1;
while(m--)
{
long long int p,q;
cin>>p>>q;
if(p==0)
{
sort(a,a+q,cmp);
// for(long long int i=0;i<q;i++)
// {
// for(long long int j=i+1;j<q;j++)
// {
// if(a[i]<a[j])
// {
// long long int t=a[i];a[i]=a[j];a[j]=t;
// }
// }
// }
}
else
{
sort(a+q-1,a+n);
// for(long long int i=q-1;i<n;i++)
// {
// for(long long int j=i+1;j<n;j++)
// {
// if(a[i]>a[j])
// {
// long long int t=a[i];a[i]=a[j];a[j]=t;
// }
// }
// }
}
if(m==0) break;
}
for(long long int i=0;i<n;i++)
cout<<a[i]<<" ";
return 0;
}
有更简单的办法欢迎大家留言~
共同进步吧!