14859 | 2025-02-04 18:35:30 | horka | Maximális szorzat (50 pont) | cpp17 | Forditási hiba |
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MOD=1e9+7;
signed main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n,k,b; cin>>n>>k>>b;
vector<int> pos,neg;
for(int i=0; i<n; i++)
{
int x; cin>>x;
if(x<0) neg.push_back(x);
else pos.push_back(x);
}
if(neg.size()<b)
{
cout<<"-1\n";
return 0;
}
sort(neg.begin(),neg.end());
int op=0;
priority_queue<int> q;
for(int &i:pos)
q.push(-i);
for(int i=b; i<neg.size(); i++)
{
op+=abs(neg[i]);
q.push(0);
}
if(op>k)
{
cout<<"-1\n";
return 0;
}
k-=op;
if(b==n)
{
int sum=0;
for(int i=0; i<n; i++)
sum+=abs(v[i])-1;
if(sum>k)
{
cout<<-1<<endl;
return 0;
}
priority_queue<int> s;
for(int i=0; i<n; i++)
s.push(-neg[i]);
while(k--)
{
int x=s.top();
s.pop();
x--;
s.push(-x);
}
int ans=1;
while(!s.empty())
{
ans=ans*s.top()%MOD;
s.pop();
}
cout<<ans<<endl;
return 0;
}
while(k--)
{
int x=q.top();
q.pop();
x=abs(x);
x++;
q.push(-x);
}
int ans=1;
while(!q.empty())
{
int x=q.top();
q.pop();
x=abs(x);
ans=ans*x%MOD;
}
for(int i=0; i<b; i++)
ans=ans*abs(neg[i])%MOD;
cout<<ans<<"\n";
}
open /var/local/lib/isolate/413/box/a.out: no such file or directory
main.cpp: In function 'int main()':
main.cpp:41:22: error: 'v' was not declared in this scope
41 | sum+=abs(v[i])-1;
| ^