Cod sursa(job #2685976)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 18 decembrie 2020 10:41:15
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin( "buline.in" );
ofstream fout( "buline.out" );

const int NMAX = 2e5;
int v[NMAX * 2 + 1];

int main() {
  int n, i, stpos, sum, rezsol, rezcnt, maxx, x, cnt;
  fin >> n;
  for( i = 0; i < n; ++i ){
    fin >> v[i] >> x;
    if( x == 0 )
      v[i] = -v[i];
  }
  for( i = n; i < 2 * n; ++i )
    v[i] = v[i - n];
  sum = stpos = 0;
  rezsol = rezcnt = maxx = 0;
  cnt = 0;
  for( i = 0; i < 2 * n; ++i ){
    if( cnt == n ){
      sum -= v[stpos++];
      --cnt;
    }
    //cout << sum << "\n";
    sum += v[i];
    ++cnt;
    if( sum < 0 ){
      sum = 0;
      stpos = i + 1;
      cnt = 0;
    }
    if( maxx < sum ){
      maxx = sum;
      rezsol = (stpos % n);
      rezcnt = cnt;
    }
  }
  fout << maxx << " " << rezsol + 1 << " " << rezcnt;
  return 0;
}