Sto sottomettendo il seguente codice per spiedini e mi continua a dare errore di compilazione nonostante da locale sia con Dev-C++ che con NetBeans non mi dia nessun errore… Probabilemte avrò un bug stupido nel codice ma non lo trovo e non capisco perche i due compilatori non me lo segnalino!
#include <iostream>
#include <algorithm>
#include <math.h>
#include <vector>
#include <string>
#include <utility>
#include <stdio.h>
#include <queue>
#include <fstream>
#include <functional>
#include <cstdlib>
#include <map>
#include <set>
#include <bitset>
using namespace std;
int N,k,sol,rSum[20000005],lSum[20000005],tZ,pR,pL,tZR[20000005],tZL[20000005];
int main() {
ifstream in; ofstream out;
in.open("input.txt"); out.open("output.txt");
in>>N>>k;
for(int i=0;i<N;i++){
int t;
in>>t;
if(t==0)
tZ++;
tZL[i]=tZ;
if(i==0)
lSum[i]=t;
else
lSum[i]=lSum[i-1]+t;
rSum[i]=t;
}
for(int i=N-1;i>=0;i--){
if(rSum[i]==0)
tZR[i]++;
if(i!=N-1){
tZR[i]+=tZR[i+1];
rSum[i]+=rSum[i+1];
}
}
pR=0;
pL=-1;
while(rSum[pR]>k)
pR++;
while(pR<N){
while(rSum[pR]+lSum[pL+1]<=k)
pL++;
if(pL<0){
if(rSum[pR]>sol)
sol=tZR[pR];
pR++;
continue;
}
if(pL>=pR){
sol=tZ;
break;
}
if(tZR[pR]+tZL[pL]>sol)
sol=tZR[pR]+tZL[pL];
pR++;
}
out<<sol;
in.close(); out.close();
return 0;
}