Cod sursa(job #3308764)

Utilizator mihai.25Calin Mihai mihai.25 Data 27 august 2025 21:14:45
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

#include <vector>

using namespace std;

ifstream fin ("buline.in");

ofstream fout ("buline.out");

int main () {

	int n;

	fin >> n;

	vector<int> v;

	for (int i = 0; i < n; ++i) {

		int x, c;

		fin >> x >> c;

		if (c == 1)
			v.push_back(x);
		else
			v.push_back(-x);
	}

	for (int i = 0; i < n - 1; ++i)
		v.push_back(v[i]);
	
	long long sum_max = -1e18, sum = 0, start, poz, lungime;

	for (int i = 0; i < v.size(); ++i) {

		if (sum + v[i] > v[i])
			sum += v[i];
		else {

			sum = v[i];

			start = i;
		}

		if (i - start + 1 <= n) {

			if (sum > sum_max || (sum == sum_max && start % n < poz) || (sum == sum_max && start % n == poz && i - start + 1 < lungime)) {
    
				sum_max = sum;
				
				lungime = i - start + 1;
				
				poz = start % n;
			}
		}
	}

	fout << sum_max << ' ' << poz + 1 << ' ' << lungime;

	return 0;
}