1、3321:练54.4 整数ABC
#include<bits/stdc++.h>
using namespace std;
int main() {
int a[10];
string s;
for (int i = 1; i <= 3; i++)cin >> a[i];
cin >> s;
sort(a + 1, a + 1 + s.length());
for (int i = 0; i <= 2; i++) {
cout << a[s[i] - 64] << " ";
}
return 0;
}
2、3322:练54.5 损失最小
#include<bits/stdc++.h>
using namespace std;
int a[1000000+10];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
//cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=m;i++)
{
printf("%d\n",a[i]);
//cout<<a[i]<<endl;
}
return 0;
}
3、3323:【例55.1】 整数奇偶排序
[例55.1] 整数奇偶排序
1181:整数奇偶排序
一本通视频题解——1181:整数奇偶排序
《信息学奥赛一本通》题解_1181_整数奇偶排序_哔哩哔哩_bilibili
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a, int b){
return a > b;
}
int main(){
int a[12], b[12];
int n = 10;
int i = 0, j = 0;
while(n--){
int x;
cin >> x;
if(x % 2 == 1)a[i++] = x;//存奇数
else b[j++] = x;//存偶数
}
sort(a, a + i, cmp);//逆排序
sort(b, b + j);//排序
if(i != 0)
for(int k = 0; k < i; k++){
cout << a[k] << " ";
}
if(j != 0)
for(int k = 0; k < j; k++){
cout << b[k] << " ";
}
return 0;
}
4、3324:【例55.2】 约翰书架
#include<bits/stdc++.h>
using namespace std;
int main(){
int b[20001]={},n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>b[i];
}
sort(b+1,b+n+1);
int s=0,s1=0;
for(int i=n;i>=1;i--){
s+=b[i];
s1++;
if(s>=m){
break;
}
}
cout<<s1;
return 0;
}
5、3325:【例55.3】 绝对值排序
/*
3325:【例55.3】 绝对值排序
http://bas.ssoier.cn:8086/problem_show.php?pid=3325
https://blog.csdn.net/wudaomumu/article/details/129800992
*/
#include <stdio.h>
#include <math.h>
int main(){
int n,i,j,a[100];
while(scanf("%d",&n) != EOF){
for(i = 0;i < n;i++){
scanf("%d",&a[i]);
}
for(i = 0;i < n;i++){
int f = 0;
for(j = 0;j < n - i - 1;j++){
if(abs(a[j]) < abs(a[j + 1])){
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
f = 1;
}
}
if(f == 0) break;
}
for(i = 0;i < n;i++){
printf("%d ",a[i]);
}
}
return 0;
}
6、3326:练55.1 合影效果
练55.1 合影效果
1182:合影效果
一本通视频题解——1182:合影效果
一本通视频题解——1182:合影效果_哔哩哔哩_bilibili
#include<bits/stdc++.h>
using namespace std;
int main()
{
double a,q[40],o[40];
int q1=0,o1=0,n;
string s;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>s>>a;
if(s=="female")
{
o[o1]=a;
o1++;
}
if(s=="male")
{
q[q1]=a;
q1++;
}
}
sort(o,o+o1);//排序
sort(q,q+q1);
for(int i=0;i<q1;i++)//保留2位小数输出
{
printf("%.2lf ",q[i]);
}
for(int i=o1-1;i>=0;i--)
{
printf("%.2lf ",o[i]);
}
return 0;
}
7、3327:练55.2 跳绳比赛
第64课 跳绳比赛 《小学生C++趣味编程》
/*
风之巅小学举行1分钟跳绳比赛,5人一小组,试编一程序,
输入小组内同学的跳绳次数,按从次数由多到少的顺序输出。
选择排序
冒泡排序
桶排序
*/
#include<iostream>
using namespace std;
int main()
{
int a[6],i,j,t;
int k;
int maxa;
//cout<<"输入5个整数:"<<endl;
for(i=1;i<=5;i++)
cin>>a[i];
for(i=1;i<=4;i++)
{
maxa=a[i];
k=i;
for(j=i+1;j<=5;j++)
if( a[j]>maxa )
{
maxa=a[j];
k=j;
}
t=a[i];
a[i]=a[k];
a[k]=t;
}
for(i=1;i<=5;i++)
cout<<a[i]<<" ";
return 0;
}
/*
作业:
2044:【例5.12】回文字串
http://ybt.ssoier.cn:8088/problem_show.php?pid=2044
2045:【例5.13】蛇形填数
http://ybt.ssoier.cn:8088/problem_show.php?pid=2045
2046:【例5.15】替换字母
http://ybt.ssoier.cn:8088/problem_show.php?pid=2046
*/
8、3328:练55.3 收益最大
#include <bits/stdc++.h>
using namespace std;
int c,n,a[1005],z,kun,m;
int main(){
cin>>c>>n;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+1+n,greater<int>());
for(int i=1;i<=n;i++){
kun=min(i,c);
if(z<=kun*a[i]){
z=kun*a[i];
m=a[i];
}
}
cout<<m<<" "<<z;
return 0;
}
9、3329:练55.4 沙堡
/*
3329:练55.4 沙堡
http://bas.ssoier.cn:8086/problem_show.php?pid=3329
https://blog.csdn.net/SSB232/article/details/107992428
https://www.jianshu.com/p/3b9abce3fd28
*/
#include<bits/stdc++.h>
using namespace std;
int m[25001],b[25001];
int main()
{
int n,x,y,i,ans;
cin>>n>>x>>y;
for(i=1;i<=n;i++)
{
scanf("%d%d",&m[i],&b[i]);
}
sort(m+1,m+n+1);
sort(b+1,b+n+1);
ans=0;
for(i=1;i<=n;i++)
{
if(m[i]<b[i])
{
ans+=(b[i]-m[i])*x;
}
else
{
ans+=(m[i]-b[i])*y;
}
}
cout<<ans<<endl;
return 0;
}
10、3330:【例56.1】 和为给定数
信息学奥赛一本通-编程启蒙3330:【例56.1】 和为给定数
信息学奥赛一本通-编程启蒙3330:【例56.1】 和为给定数_给出若干个整数,询问其中是否有一对数的和等于给定的数。-CSDN博客