#P1002. Lonely Photo
Lonely Photo
美国计算机奥林匹克竞赛(USACO)2021年12月竞赛,青铜组
问题1. 孤独的照片
农夫约翰最近新购入了头奶牛(),每头奶牛的品种要么是更赛牛(Guernsey),要么是荷斯坦牛(Holstein)。
奶牛们现在排成一排,农夫约翰想要给每一个三头或三头以上连续奶牛的序列拍照。然而,他不想拍那种只有一头更赛牛或者只有一头荷斯坦牛的照片——他认为这种单独的奶牛会感到孤立和不自在。在给所有三头或更多头奶牛的序列拍完照后,他会扔掉所有这种所谓的“孤独”照片,也就是那些只有一头更赛牛或者只有一头荷斯坦牛的照片。
根据奶牛的排列顺序,帮助农夫约翰确定他要扔掉多少张孤独的照片。如果两张照片在排列中的起始奶牛或结束奶牛不同,那么这两张照片就是不同的。
输入格式(输入来自终端/标准输入)
输入的第一行包含。
第二行包含一个由个字符组成的字符串。如果队伍中第头奶牛是更赛牛,那么第个字符是“G”;否则,该字符将是“H”,表示第头奶牛是荷斯坦牛。
输出格式(将输出打印到终端/标准输出)
请输出农夫约翰因为照片是孤独的而要扔掉的照片数量。
样例输入:
5
GHGHG
样例输出:
3
在这个例子中,每个长度为3的子串都恰好包含一头更赛牛或者一头荷斯坦牛——所以这些子串代表孤独的照片,会被农夫约翰扔掉。所有更长的子串(如GHGH、HG HG和GHGHG)对他来说是可以接受的。
评分标准:
- 测试用例2到4满足。
- 测试用例5到10满足。
- 更具挑战性的是,测试用例11没有其他限制条件。请注意,这种情况下的答案可能太大,无法用标准的32位整数表示,可能需要使用更大的整数类型(例如,C++中的64位“long long”整型)。