結果

問題 No.341 沈黙の期間
ユーザー dgd1724dgd1724
提出日時 2016-10-02 06:33:40
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 1,826 bytes
コンパイル時間 838 ms
コンパイル使用メモリ 98,272 KB
実行使用メモリ 4,384 KB
最終ジャッジ日時 2023-08-13 16:48:01
合計ジャッジ時間 1,678 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
4,376 KB
testcase_01 AC 1 ms
4,380 KB
testcase_02 AC 1 ms
4,380 KB
testcase_03 AC 1 ms
4,380 KB
testcase_04 AC 2 ms
4,380 KB
testcase_05 AC 1 ms
4,380 KB
testcase_06 AC 2 ms
4,376 KB
testcase_07 AC 2 ms
4,380 KB
testcase_08 AC 1 ms
4,384 KB
testcase_09 AC 1 ms
4,380 KB
testcase_10 AC 2 ms
4,380 KB
testcase_11 AC 2 ms
4,380 KB
testcase_12 AC 1 ms
4,380 KB
testcase_13 AC 1 ms
4,384 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#define _USE_MATH_DEFINES	//M_PI(π),M_SQRT2(√2)
#include <iostream>			//std::cout, std::cin
#include <string>			//std::string,std::to_string(C++11)
#include <vector>			//std::vector
#include <valarray>			//std::valarray
#include <algorithm>		//std::sort
#include <time.h>			//localtime_s
#include <cstdlib>			//abs
#include <cmath>			//abs,std::pow,sqrt,sin,cos,round,floor,ceil
#include <fstream>			//std::ifstream,std::ofstream
#include <iomanip>			//std::setprecision,std::setw,std::setfill
#include <random>			//std::random(C++11)
#include <numeric>			//std::accumulate
#include <functional>		//std::greater
#include <list>				//std::list

void UTF8_to_CodePoint(const std::string *str, std::vector<int> &result) {

	std::string S = *str;
	int i = 0;
	unsigned char c = 0;
	while (i < S.size()) {
		c = S[i];
		if (0 <= c && c < 128) {
			result.push_back(S[i]);
			i += 1;
		}
		else if (194 <= c && c < 224) {
			result.push_back(unsigned(S[i] & 0x1F) << 6 | S[i + 1] & 0x3F);
			i += 2;
		}
		else if (224 <= c && c < 240) {
			result.push_back(unsigned(S[i] & 0x0F) << 12 | unsigned(S[i + 1] & 0x3F) << 6 | S[i + 2] & 0x3F);
			i += 3;
		}
		else {
			result.push_back(unsigned(S[i] & 0x07) << 18 | unsigned(S[i + 1] & 0x3F) << 12 | unsigned(S[i + 2] & 0x3F) << 6 | S[i + 3] & 0x3F);
			i += 4;
		}
	}
}

int main(void) {

	//test用
	//std::ifstream in("123.txt");
	//std::cin.rdbuf(in.rdbuf());

	std::string S;
	std::cin >> S;
	std::vector<int> N;
	UTF8_to_CodePoint(&S, N);


	int max = 0, temp = 0;
	bool flg = false;
	for (int i = 0; i < N.size(); i++) {
		if (N[i] == 8230) {
			flg = true;
			temp++;
		}
		else {
			if (flg) {
				flg = false;
				if (temp >= max) {
					max = temp;
				}
				temp = 0;
			}
		}
	}
	if (flg) {
		if (temp >= max) {
			max = temp;
		}
	}

	std::cout << max << std::endl;

}
0