Здравей,
Доста сложно е направено с тези проверки и допълнителните променливи.
Ето коригиран кода ти(Промених и имената на променливите):
Там където смяташ новите пътници ти вадиш от началният брой слизащите и качващите се.
Това е вярно само за първата спирка.
Иначе имаме :
newPassengers=newPassengers-slizachi; и
newPassengers=newPassengers+kachwachi;, т е броят на новите пътници не зависи от техният начален брой,а само от текущият.
Ето ти едно решение на C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Bus
{
class Program
{
static void Main(string[] args)
{
int countOfPassengers= int.Parse(Console.ReadLine());
int countOfBusStations = int.Parse(Console.ReadLine());
for (int i =1; i <=countOfBusStations; i++)
{
int countOutPasagers = int.Parse(Console.ReadLine());
int countInPasagers = int.Parse(Console.ReadLine());
if (i%2==1)
{
countOfPassengers =countOfPassengers+countInPasagers + 2 - countOutPasagers;
}
else
{
countOfPassengers =countOfPassengers+countInPasagers - 2 - countOutPasagers;
}
}
Console.WriteLine($"The final number of passengers is : {countOfPassengers}");
}
}
}
благодаря и на двама ви!
Предполагам, че е вече е доста късно да споделя и аз решение :-), но пък може да е полезно за някой друг след нас. Предходното решение в Java не е вярно, а това на колегата от C# е вярно, но все пак да го има и в Java.
https://pastebin.com/Aa2dS5yW