結果
| 問題 |
No.342 一番ワロタww
|
| コンテスト | |
| ユーザー |
data9824
|
| 提出日時 | 2016-04-03 23:34:16 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,272 bytes |
| コンパイル時間 | 534 ms |
| コンパイル使用メモリ | 64,168 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-02 13:05:18 |
| 合計ジャッジ時間 | 1,113 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 13 WA * 1 |
ソースコード
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
static const char w[] = { (char)0xEF, (char)0xBD, (char)0x97 };
int main() {
string s;
cin >> s;
vector<size_t> wBegins;
vector<size_t> wEnds;
vector<size_t> wCounts;
bool readingW = false;
size_t nextWIndex = 0;
size_t wBegin = 0;
size_t wEnd = 0;
size_t wCount = 0;
for (size_t i = 0; i < s.size() + 1; ++i) {
char ch = s.c_str()[i];
if (readingW) {
if (ch == w[nextWIndex]) {
++nextWIndex;
if (nextWIndex == 3) {
nextWIndex = 0;
wEnd = i + 1;
++wCount;
}
} else {
readingW = false;
if (wCount > 0) {
wBegins.push_back(wBegin);
wEnds.push_back(wEnd);
wCounts.push_back(wCount);
}
}
} else {
if (ch == w[0]) {
readingW = true;
nextWIndex = 1;
wBegin = i;
wCount = 0;
}
}
}
if (wCounts.size() == 0) {
return 0;
}
size_t maxWCount = *max_element(wCounts.begin(), wCounts.end());
for (size_t i = 0; i < wCounts.size(); ++i) {
if (wCounts[i] == maxWCount) {
if (i == 0) {
if (wBegins[i] > 0) {
cout << s.substr(0, wBegins[i]) << endl;
}
} else {
cout << s.substr(wEnds[i - 1], wBegins[i] - wEnds[i - 1]) << endl;
}
}
}
return 0;
}
data9824