Gambling assistant

Non sto riuscendo a ridurre i tempi di esecuzione in questo problema,mi da 35/100 e nel resto mi esce fuori tempo. Il mio codice è questo:

 #include <iostream>
 #include <fstream>
 #include <algorithm>

using namespace std;

int N,K,C,carteInMano = 0,somma = 0,cont = 0;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int carte[10000];
int calcola(int C)
{
	if(carteInMano<K);
	else
		sort(carte+carteInMano,carte + carteInMano+1);
	for(int i = carteInMano;i>=0;i--)
	{
		if(cont < K)
		{
			somma+= carte[i];
			cont++;
		}else
			break;
	}
	return somma;
}
int main(int argc, char** argv) {
	ifstream in("input.txt");
	ofstream out("output.txt");
	in>>N>>K;
	for(int i = 0;i<N;i++)
	{
		in>>C;
		carte[carteInMano] = C;
		cout<<calcola(C)<<" ";
		carteInMano++;
		somma = 0;
		cont = 0;
	}
	return 0;

Prova ad usare una struttura dati della STL, un doppio for è troppo lento.
Inoltre non capisco quel sort, stai ordinando solo due carte?

1 Mi Piace

Si, era un errore di distrazione, ho già corretto. Comunque grazie vedrò come implementarlo con un container