📄 2723799_ce.c
字号:
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[101], b[101];
bool cmp(int s,int t)
{
int c = s, d = t;
if ( c < 0 ) c *= -1;
if ( d < 0 ) d *= -1;
return c > d;
}
bool Cmp(int s,int t)
{
return s>t;
}
int main()
{
int n, k, i, j, p, t, tt;
int c[101], mm;
mm = 1;
scanf("%d%d",&n,&k);
for (i = 0; i < n; i++)
{
scanf("%d",&a[i]),b[i] = c[i] = a[i];
if(a[i]>=0)
mm = 0;
}
sort(a,a+n,cmp);
if(mm)
{
for(i = n-1; i > n-1-k; i--)
printf("%d ",a[i]);
return 0;
}
sort(b,b+n,cmp);
sort(c,c+n,cmp);
p = 1;
for ( i = 0; i < k; i++)
p *= a[i];
if (p < 0 && k!=n)
{
for(i = k; i < n; i++)
{
if(a[i]<0)
break;
}
tt = p;
if (i != n)
{
for( j = k-1; j >= 0; j--)
{
if(a[j]>=0)
{
tt /= a[j];
tt *= a[i];
b[j] = a[i];
break;
}
}
}
t = p;
for(i = k; i < n; i++)
{
if(a[i]>=0)
break;
}
if( i != n)
{
for ( j = k-1; j >= 0; j--)
{
if(a[j]<0)
{
t /= a[j];
t *= a[i];
if(t > tt)
{
c[j] = a[i];
sort(c,c+k,Cmp);
for ( i = 0; i < k; i++)
printf("%d ",c[i]);
return 0;
}
break;
}
}
}
}
sort(b,b+k,Cmp);
for (i = 0; i < k; i++)
printf("%d ",b[i]);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -