Salve. Sto provando a risolvere noccioline delle pre_oii, ma il mio codice sbaglia i casi 3 e 22, e non capisco dove possa essere l’errore. Il mio codice scorre il vettore dei “secchi” e conta quante noccioline mancano, e toglie questo numero a un contatore sum, che alla fine del ciclo permetterà di capire anche se sono andato in “credito” o in “debito” di noccioline. Grazie per l’aiuto.
#include <iostream>
#include <fstream>
#include <math.h>
#include <algorithm>
using namespace std;
ifstream in("input.txt");
ofstream out("output.txt");
int n,k;
int v[20000];
int sum=0;
int ris;
int ContaOperazioni(int N, int K, int* secchi){
n=N;
k=K;
int p=0;
for(int i=0;i<n;i++){
v[i]=secchi[i];
p+=v[i];
}
sort(v,v+n);
bool flag=false;
for(int i=n-1;i>=0;i--){
if(v[i]<=k&&!flag){
flag=true;
ris=sum;
}
sum+=v[i]-k;
}
if(sum<0)return ris-sum;
return ris;
}