Блог пользователя joshitov0

Автор joshitov0, история, 3 года назад, По-русски

Пытаюсь решить задачу https://mirror.codeforces.com/contest/339/problem/B, но почему-то все время на каком-то "7 тесте" все заканчивается одинаково. Если что, то вот последняя версия кода:

#include <iostream>
#include <vector>
using namespace std;
int main()
{	
	int n, m, Summ = 0, Numb_of_house = 0; 
	cin  >> n >> m;
	vector <int> Order(m); 

    for (int i = 0; i < m; i++)
	{
		cin >> Order[i];
	}
	
 
	 for (int i = 1; i < m; i++)
	 {
		//  if (Order[i] > Numb_of_house)
		//  {
		// 	 Summ += (Order[i]-Numb_of_house);
		// 	 Numb_of_house = Order[i];
		//  }
		//  if (Order[i] < Numb_of_house)
		//  {
		// 	 Summ += n - (Numb_of_house- Order[i]);
		// 	 Numb_of_house = Order[i];
			 
		//  }
		if (Order[i]<Order[i-1]) Numb_of_house +=1;
	 };

	 Summ = Numb_of_house * n + (Order[m-1]-1);
	 	 
	cout << Summ;
}

Изначально переменная Numb_of_house была предназначена для другого, переименовывать не стал. Что делать? Коммент посередине — другой алгоритм решения

  • Проголосовать: нравится
  • -3
  • Проголосовать: не нравится

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Summ должна быть типа long long

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Сделайте Numb_of_house тоже long long, или замените строчку вычисления суммы на Summ = 1LL * Numb_of_house * n + (Order[m-1]-1);