Pagini recente » Cod sursa (job #1518447) | Cod sursa (job #1060298) | Cod sursa (job #2793105) | Cod sursa (job #2668989) | Cod sursa (job #3305951)
#include <fstream>
#include <vector>
#include <unordered_map>
#include <climits>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
struct nimic{};
int main(){
int n; int num, culoare;
fin >> n;
vector<int> v(n);
unordered_map<int, nimic> start;
int ssecv = -1; int secvi = 0;
int ssmax = INT_MIN; int smaxi, smaxj;
for (int i = 1; secvi != i; i++){
if (i > n){
i = 0;
}
if (!(fin >> num >> culoare)) num = v[i-1];
else {
num *=1-(!culoare*2);
v[i-1] = num;
}
if (ssecv < 0){
if (start.count(i)) break;
ssecv = 0;
secvi = i;
start[i] = nimic{};
} ssecv += num;
if (ssecv > ssmax){
ssmax = ssecv;
smaxi = secvi;
smaxj = i;
}
}
fout << ssmax << " " << smaxi << " " << (smaxj+n-smaxi)%n+1;
return 0;
}