Thứ Ba, 8 tháng 1, 2019

UVa 11661 - Burger Time? (linear scan)

Link:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=78&page=show_problem&problem=2708
Sol:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
int L;
while (cin >> L, L != 0)
{
string S;
cin >> S;
int minDistance = L;
int lastR = -L, lastD = -L;
// Linearly scan the highway.
for (int i = 0; i < L; ++i)
{
// Restaurant and drugstore.
if (S[i] == 'Z')
{
minDistance = 0;
break;
}
// Restaurant.
else if (S[i] == 'R')
{
minDistance = min(minDistance, i - lastD);
lastR = i;
}
// Drugstore.
else if (S[i] == 'D')
{
minDistance = min(minDistance, i - lastR);
lastD = i;
}
}
cout << minDistance << endl;
}
return 0;
}

Không có nhận xét nào:

Đăng nhận xét

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...