結果

問題 No.341 沈黙の期間
ユーザー おいがみおいがみ
提出日時 2016-03-06 14:14:18
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 1,678 bytes
コンパイル時間 1,353 ms
コンパイル使用メモリ 163,412 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-09-24 14:41:57
合計ジャッジ時間 1,873 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

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

ソースコード

diff #

#include "bits/stdc++.h"
#ifndef err
#define err(...)
#define DebugWriteLine(...)
#endif
using namespace std;
void Calc();
#define ALL(win) begin(win),end(win)
#define RALL(win) (win).rbegin(),(win).rend()
typedef int64_t ll;
typedef uint64_t ull;
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cout << fixed << setprecision(15);
  cin.exceptions(istream::failbit | istream::badbit);
  Calc();
  cout.flush();
  return 0;
}
template<class T> struct Iter {
  T&operator++() { return ++i; }
  constexpr const T&operator*() const { return i; }
  constexpr bool operator!=(const Iter &o) const { return i != o.i; }
  T i;
};

struct Scanner {
  template<class A = string>static A Next() { A a; cin >> a; return a; }
  template<class A = int>static vector<A> Array(int n) { vector<A> a(n); for (A&i : a) cin >> i; return a; }
  static string Line() { string s; getline(cin, s); return s; }
  static int Int() { return Next<int>(); }
  template<class A>Scanner&operator,(A&a) { a = Next<A>(); return *this; }
  template<class A>operator A() { return Next<A>(); }
}in;

/*---------------------------------------------------------------------*/

struct Char {
  Char() { c.reserve(6); }
  std::vector<char> c;
};
void Calc() {
  Char a;
  a.c.push_back(0xe2);
  a.c.push_back(0x80);
  a.c.push_back(0xa6);
  int maxi = 0;
  int cnt = 0;
  string s = in;

  Char c;
  for (int i = 0; i < s.size(); ) {
    c.c.clear();
    bitset<8> b(s[i]);
    c.c.push_back(s[i++]);
    if (b[7] == 0) {
      continue;
    }
    for (int j = 6; b[j]; j--) {
      c.c.push_back(s[i++]);
    }
    if (c.c == a.c) maxi = max(++cnt, maxi);
    else cnt = 0;
  }

  cout << maxi << endl;
}
0