1 solutions
-
0
Guest MOD
-
1
x有可能是基数,也有可能是偶数;
传统输入:
//输入分为基数a[]和偶数s[] for(int i=1;i<=n/2;i++){ cin>>a[i]>>s[i]; }代码主体:
if(n%2!=0){//判断输入个数是不是偶数 cin>>a[n/2+1];//是,就要多输入一个基数 sort(a+1,a+1+n/2+1); sort(s+1,s+1+n/2,cmp);//比大小 for(int i=1;i<=n/2;i++){ cout<<a[i]<<' '<<s[i]<<' '; } cout<<a[n/2+1]; }分支:
//不是,就不用多输入 sort(a+1,a+1+n/2); sort(s+1,s+1+n/2,cmp); for(int i=1;i<=n/2;i++){ cout<<a[i]<<' '<<s[i]<<' '; } }完整代码:
#include<bits/stdc++.h> typedef long long ll; using namespace std; const int N=10010; int a[N]; int s[N]; int n; bool cmp(int a,int s){ return a>s; } int main(){ cin.sync_with_stdio(false); ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); cin>>n; for(int i=1;i<=n/2;i++){ cin>>a[i]>>s[i]; } if(n%2!=0){ cin>>a[n/2+1]; sort(a+1,a+1+n/2+1); sort(s+1,s+1+n/2,cmp); for(int i=1;i<=n/2;i++){ cout<<a[i]<<' '<<s[i]<<' '; } cout<<a[n/2+1]; } else{ sort(a+1,a+1+n/2); sort(s+1,s+1+n/2,cmp); for(int i=1;i<=n/2;i++){ cout<<a[i]<<' '<<s[i]<<' '; } } return 0; }
Information
- ID
- 733
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 8
- Tags
- (None)
- # Submissions
- 74
- Accepted
- 14
- Uploaded By