Cod sursa(job #848707)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 5 ianuarie 2013 18:25:33
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <cstring>
 
using namespace std;
 
ifstream in ("buline.in");
ofstream out ("buline.out");
 
int V[400010];
bool Viz[400010];
 
int main ()
{
    int N, i, Sum = 0, Best, idx = 1, L, St, Dr;
    bool bila;
     
    in >> N;
     
    for (i = 1; i <= N; i ++){
        in >> V[i] >> bila;
         
        if (!bila)
            V[i] = ~V[i] + 1;
         
        V[N + i] = V[i];
    }
    Best = V[1];
    St = 1;
    Dr = 1;
     
    //for (i = 1; i <= (N << 1); i ++)
        //cout << V[i] << " ";
     
    for (i = 1; i <= (N << 1); i ++){
        if (i > N && i - N == idx)
            break;
         
        if (Sum > 0)
            Sum += V[i];
        else{
            Sum = V[i];
            idx = i;
        }
        
        if (Sum > Best)
            Best = Sum, St = idx, Dr = i;
    }
	
    out << Best << " " << St << " " << Dr - St + 1;
     
    return 0;
}