125832024-12-24 14:59:59SRobLeghosszabb béke (75 pont)cpp17Hibás válasz 48/7564ms792 KiB

//#include "stdafx.h"
#include <iostream>

using namespace std;
const int maxN = 100000;
int main()
{
	int napokszama, haborukszama;
	cin >> napokszama >> haborukszama;
	// egyes haboruk/ szakaszok beolv
	int napok[maxN] = {0}; // minden elemet 0-ról indít
	int from,to; // segédváltozók
	for (int i = 0; i < haborukszama; i++)
	{
		cin >> from >> to;
		napok[from-1] = to-from;
	}
	//----ELL KIÍRÁS
	/*cout <<"alakítás nélkül" <<endl;
	for (int i = 0; i < napokszama; i++)
	{
		cout << " " << napok[i];
	}
	cout<<endl;*/

	int elsodleges = 0;
	//azt adja meg hogy még mennyi napig van háboru tehát hányszor fog ezen az elemen kívűl még megjelenni 1
	
	for (int i = 0; i < napokszama; i++)
	{
		if (napok[i] != 0 && elsodleges == 0)
		{
			elsodleges = napok[i];
		}
		else if (napok[i] != 0 && elsodleges > 0)
		{
			if (napok[i] > elsodleges)
			{
				elsodleges = napok[i];
			}
			else
			{
				elsodleges--;
			}
		}
		else if (napok[i] == 0 && elsodleges > 0)
		{
			napok[i] = 1;
			elsodleges--;
		}
		
	}
	//----ELL KIÍRÁS
	/*for (int i = 0; i < napokszama; i++)
	{
		cout << " " << napok[i];
	}*/
	
	//cout << endl;
	// megoldas
	int kezdo, maxHossz, jelenHossz, jelenSzakaszKezdo;
	jelenHossz = 0;
	maxHossz = 0;
	kezdo = 0;
	
	for (int i = 0; i < napokszama; i++)
	{
		if (napok[i] == 0 && jelenSzakaszKezdo == 0)
		{
			jelenSzakaszKezdo = i;
			jelenHossz++;
		}
		else if (napok[i] == 0)
		{
			jelenHossz++;
			//cout <<"HAMIS, ++ , " << i+1 <<" jelenhossz: " << jelenHossz <<" maxHossz: "<< maxHossz<< endl;
		}
		
		else if (napok[i] >= 1)
		{
			jelenSzakaszKezdo = 0;
			jelenHossz = 0;
			//cout <<"IGAZ,0 , "<<i+1 <<" jelenhossz: " << jelenHossz <<" maxHossz: "<< maxHossz<< endl;
		}
		if (jelenHossz > maxHossz)
		{
			kezdo = jelenSzakaszKezdo;
			maxHossz = jelenHossz;
		}
	}
	//kiiras
	if (maxHossz == 0)
	{
		cout << -1;
	}
	else
	{
		cout << maxHossz << " " << kezdo+1;
	}
	
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base48/75
1Elfogadva0/01ms568 KiB
2Elfogadva0/064ms568 KiB
3Elfogadva3/31ms756 KiB
4Hibás válasz0/31ms568 KiB
5Elfogadva3/31ms568 KiB
6Elfogadva3/31ms568 KiB
7Elfogadva3/31ms568 KiB
8Elfogadva4/41ms568 KiB
9Elfogadva4/41ms568 KiB
10Hibás válasz0/41ms568 KiB
11Elfogadva4/44ms568 KiB
12Hibás válasz0/46ms792 KiB
13Elfogadva4/44ms572 KiB
14Hibás válasz0/44ms568 KiB
15Elfogadva4/46ms648 KiB
16Elfogadva4/46ms568 KiB
17Elfogadva4/46ms568 KiB
18Elfogadva4/47ms792 KiB
19Hibás válasz0/461ms792 KiB
20Hibás válasz0/457ms792 KiB
21Elfogadva4/456ms792 KiB
22Hibás válasz0/457ms792 KiB