結果
| 問題 | 
                            No.342 一番ワロタww
                             | 
                    
| コンテスト | |
| ユーザー | 
                             kpinkcat
                         | 
                    
| 提出日時 | 2023-11-16 19:01:00 | 
| 言語 | C++17  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 2 ms / 5,000 ms | 
| コード長 | 1,772 bytes | 
| コンパイル時間 | 1,015 ms | 
| コンパイル使用メモリ | 108,948 KB | 
| 最終ジャッジ日時 | 2025-02-17 22:18:02 | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 14 | 
ソースコード
#include<iostream>
#include<string>
#include<algorithm>
#include<cctype>
#include<set>
#include<bitset>
#include<math.h>
#include<map>
#include<queue>
#include<iomanip>
using namespace std;
#ifdef _WIN32
#include <Windows.h>
#endif
int cntByte(unsigned char cChar)
{
   int iByte;
   if ((cChar >= 0x00) && (cChar <= 0x7f)) {
       iByte = 1;
   } else if ((cChar >= 0xc2) && (cChar <= 0xdf)) {
       iByte = 2;
   } else if ((cChar >= 0xe0) && (cChar <= 0xef)) {
       iByte = 3;
   } else if ((cChar >= 0xf0) && (cChar <= 0xf7)) {
       iByte = 4;
   } else if ((cChar >= 0xf8) && (cChar <= 0xfb)) {
       iByte = 5;
   } else if ((cChar >= 0xfc) && (cChar <= 0xfd)) {
       iByte = 6;
   } else {
       iByte = 0;
   }
   return iByte;
}
int main()
{
    #ifdef _WIN32
        SetConsoleOutputCP(CP_UTF8);
        setvbuf(stdout, nullptr, _IOFBF, 1024);
    #endif
    int cnt = 0, max1 = 0, cbytes;
    string s, t, tmp = "";
    cin >> s;
    t = "w";
    vector<string> ans;
    string::size_type pos = 0;
    while (s.begin() + pos <= s.end()){
        cbytes = cntByte(s[pos]);
        if (s.substr(pos, cbytes) == t){
            cnt++;
        } else {
            if (cnt > 0 && cnt >= max1) {
                if (cnt == max1 && tmp.size() > 0) ans.push_back(tmp);
                else if (cnt > max1 && tmp.size() > 0){
                    ans.clear();
                    ans.push_back(tmp);
                }
                if (tmp.size()) max1 = cnt;
                cnt = 0;
                tmp = "";
            } else if (cnt > 0){
                cnt = 0;
                tmp = "";
            }
            tmp += s.substr(pos, cbytes);
        }
        pos += cbytes;
    }
    for (auto x : ans){
        cout << x << endl;;
    }
}
            
            
            
        
            
kpinkcat