INOI 2023 problem 1 Help needed

link to Question - CodeChef: Practical coding for everyone

I am unable to generalize my solution to K > 1. Can someone guide me on how to generalize my solution?

#include<bits/stdc++.h>
using namespace std;

int main()
{
    long long N,K;
    cin>> N;
    cin>> K;
    vector<long long>organisms;
    vector <long long>weights;
    
    for(long long i = 0; i< N; i++)
    {
        long long x;
        cin >> x;
        organisms.push_back(x);
    }
    for(long long i = 0; i< N; i++)
    {
        long long x;
        cin >> x;
        weights.push_back(x);
    }
    
    long long wallo = 0;
    long long  weightswall = 0;
    long long biomasswall = 0;
    long long biomass = 1e17;
    long long minn_i;
    
    
    if(K == 0)
    {
        biomass = 0;
        for(long long i = 0; i < N; i++)
    {
        biomass += organisms[i];
    }
    
    sort(weights.begin(), weights.end());
    
    biomass *= weights[N - 1];
        cout << biomass;
    }
    if(K ==1)
    {
    
        for(long long i =0; i < N - 1; i++)
        {
            long long wall1 = 0;
            for(long long j =0; j <= i; j++)
            {
                wall1 += organisms[j] ;
            }
            
            long long weights1 = 0;
            for(long long j =0; j <= i; j++)
            {
                weights1 = max(weights1, weights[j]);
            }
            
            long long wall2 = 0;
            for(long long j =i + 1; j < N; j++)
            {
                wall2 += organisms[j]; 
            }
            
            long long weights2 = 0;
            for(long long j =i + 1; j < N; j++)
            {
                weights2 = max(weights2, weights[j]);
            }
            
           
            
            if(wall1*weights1+ wall2*weights2 < biomass)
            {
                biomass = wall1*weights1+ wall2*weights2;
            }
            
        }
        
        cout << biomass << std::endl;
    }
}