己亥杂史 | ||
|
问题描述
龚自珍写了《己亥杂诗》,而带学者nodgd正在研究“己亥杂史”。
今年是公历2019年,农历是己亥年。按照天干地支纪年法,每六十年是一个周期,例如上一个己亥年应该是公历的1959年。nodgd翻阅历史书籍时,找到了很多段历史信息,他想整理出己亥年的所有信息,并按照先后顺序整理出来,你能帮帮他吗?
输入格式
第一行一个整数,表示nodgd找到的历史信息数量。
第二行个整数,表示每条历史信息的公历年份。年份的范围保证在到之间。
输出格式
按照从小到大的顺序输出己亥年历史信息的公历年份。
样例输入
5
2019 2009 1959 1989 1959
样例输出
1959 1959 2019
直接排序好吧
这次写了一个快速排序的函数:
void quick_sort(int q[],int l,int r){
if(l>=r){
return;
}
int x=q[l];
int i=l-1;
int j=r+1;
while(i<j){
do{
i++;
}while(q[i]<x);
do{
j--;
}while(q[j]>x);
if(i<j){
swap(q[i],q[j]);
}
}
quick_sort(q,l,j);
quick_sort(q,j+1,r);
}
剩下的就简单了
#include<bits/stdc++.h>
using namespace std;
const int N=1000000+10;
int n;
int q[N];
void quick_sort(int q[],int l,int r){
if(l>=r){
return;
}
int x=q[l];
int i=l-1;
int j=r+1;
while(i<j){
do{
i++;
}while(q[i]<x);
do{
j--;
}while(q[j]>x);
if(i<j){
swap(q[i],q[j]);
}
}
quick_sort(q,l,j);
quick_sort(q,j+1,r);
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&q[i]);
}
quick_sort(q,0,n-1);
for(int i=0;i<n;i++){
if((2019-q[i])%60==0){
cout<<q[i]<<" ";
}
}
}