组队吃鸡
A个1人队伍 B个2人队伍 C个3人队伍 D个4人队伍
输出可以组成多少个4人队伍(可以组合)
样例输入:
4
1 2 3 4
4 3 2 1
2 2 2 1
0 2 0 1
样例输出
6
5
4
2
代码1(注释部分):
题目2:重新排列序列
第一行N M
第二行 A1到AN
剩下M行,每行都是int型t和x,t=0时对A1-AN升序排序,t=1时降序
最后输出A1-AN
代码:
#include <iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int sum;
vector<int> vec;
bool cmp_down(int a,int b)//降序排序
{
return a>b;
}
int main()
{
/* 组队吃鸡
int A ,B,C,D;
int T;
cin>>T;
for(int i=0; i< T;i++)
{
cin>>A>>B>>C>>D;
if(C>=A)
sum=D+A+B/2;
else if(B%2==0)
sum = D+C+B/2+(A-C)/4;
else if(B%2==1)
sum = D+C+B/2+1+(A-C-1)/4;
vec.push_back(sum);
}
for(int j=0; j<vec.size();j++)
cout<<vec[j]<<endl;
*/
int N,M;
cin>>N>>M;
vector<int>sort_vector;
int a[N]={0};
for(int j =0;j<N;j++)
scanf("%d",&a[j]);
int t,x;
for(int i=0;i<M;i++)
{
cin>>t>>x;
if(t==0)
{
sort(a,a+x);
for(int ii=0;ii<x;ii++)
sort_vector.push_back(a[ii]);
}
if(t==1)
{
sort(a,a+x,cmp_down);
for(int jj=0;jj<x;jj++)
sort_vector.push_back(a[jj]);
}
}
for(int k =0;k<N;k++)
{
cout<<a[k]<<endl;
}
return 0;
}