125812024-12-24 14:37:36SRobLeghosszabb béke (75 pont)cpp17Hibás válasz 0/7564ms800 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
	cout << maxHossz << " " << kezdo+1;
}

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