Решение задачи A квалификационного раунда Google Code Jam 2015


Решение задачи «Аплодирование стоя» на C++.

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(){
  int T;
  cin >> T;
  string line;
  getline(cin, line);
  int pos;
  int Smax;
  vector<int> S;
  string digits;
  int allFriends;
  int friends;
  int stand;
  for (int i = 1; i <= T; i++)
  {
    getline(cin, line);
    pos = line.find(" ");
    Smax = atoi(line.substr(0, pos).c_str());
    digits = line.substr(pos + 1);
    S.clear();
    for (int j = 0; j <= Smax; j++)
      S.push_back(atoi(digits.substr(j, 1).c_str()));
    allFriends = 0;
    stand = 0;
    cout << "Case #" << i << ": ";
    for (int j = 0; j <= Smax; j++)
    {
      friends = 0;
      if ((S[j] > 0) && (stand < j))
      {
        friends = j - stand;
        allFriends += friends;
        stand += friends;
      }
      stand += S[j];
    }
    cout << allFriends << endl;
  }
}
Реклама
Запись опубликована в рубрике программирование с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s