結果
問題 |
No.3010 水色コーダーさん
|
ユーザー |
|
提出日時 | 2025-02-02 02:39:32 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 71 ms / 2,000 ms |
コード長 | 9,405 bytes |
コンパイル時間 | 6,054 ms |
コンパイル使用メモリ | 302,632 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2025-02-02 02:39:42 |
合計ジャッジ時間 | 9,118 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
#include <bits/stdc++.h> // #if __has_include(<atcoder/all>) // # include <atcoder/all> // #endif // using namespace atcoder; // 定義系 namespace Define { // 引数に応じて呼び出しを変える,for文 #define rep_overload(e1, e2, e3, e4, NAME, ...) NAME #define REP_OVERLOAD(e1, e2, e3, e4, NAME, ...) NAME #define rrep_overload(e1, e2, e3, e4, NAME, ...) NAME #define RREP_OVERLOAD(e1, e2, e3, e4, NAME, ...) NAME // for文 #define rep1(i, lim) for (int i = (int)0; i < (int)lim; i++) #define rep2(i, x, lim) for (int i = (int)x; i < (int)lim; i++) #define rep3(i, x, lim, gap) for (int i = (int)x; i < (int)lim; i += gap) #define rep(i, ...) rep_overload(i, __VA_ARGS__, rep3, rep2, rep1)(i, __VA_ARGS__) #define REP1(i, lim) for (int i = (int)0; i <= (int)lim; i++) #define REP2(i, x, lim) for (int i = (int)x; i <= (int)lim; i++) #define REP3(i, x, lim, gap) for (int i = (int)x; i <= (int)lim; i += (int)gap) #define REP(i, ...) REP_OVERLOAD(i, __VA_ARGS__, REP3, REP2, REP1)(i, __VA_ARGS__) #define rrep1(i, x) for (int i = (int)x; i > 0; i--) #define rrep2(i, x, lim) for (int i = (int)x; i > (int)lim; i--) #define rrep3(i, x, lim, gap) for (int i = (int)x; i > (int)lim; i -= gap) #define rrep(i, ...) rrep_overload(i, __VA_ARGS__, rrep3, rrep2, rrep1)(i, __VA_ARGS__) #define RREP1(i, x) for (int i = (int)x; i >= 0; i--) #define RREP2(i, x, lim) for (int i = (int)x; i >= (int)lim; i--) #define RREP3(i, x, lim, gap) for (int i = (int)x; i >= (int)lim; i -= (int)gap) #define RREP(i, ...) RREP_OVERLOAD(i, __VA_ARGS__, RREP3, RREP2, RREP1)(i, __VA_ARGS__) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define el "\n" #define spa " " #define eps (1e-10) #define Equals(a, b) (fabs((a) - (b)) < eps) } // namespace Define // 拡張メソッド的なもの namespace Extensions { template<typename T, typename A = std::allocator<T>> class vector : public std::vector<T, A> { using std::vector<T, A>::vector; public: std::string Join(std::string sep = "") { std::ostringstream oss; if (!this->empty()) { oss << this->at(0); rep(i, 1, this->size()) oss << sep << this->at(i); } return oss.str(); } }; // vector型判定 template<typename> struct is_vec : std::false_type {}; template<typename T> struct is_vec<std::vector<T>> : std::true_type {}; template<typename T> constexpr bool is_vector = is_vec<T>::value; template<typename T> constexpr bool is_num = std::is_integral_v<T> || std::is_floating_point_v<T>; } // namespace Extensions // いろいろ namespace Contest { using std::pair, std::string, std::set, std::map; using namespace Extensions; // clang-format off using ll = long long; using pii = pair<int, int>; using pll = pair<ll, ll>; using pss = pair<string, string>; using vpii = vector<pii>; using vpll = vector<pll>; using vpss = vector<pss>; using psl = pair<string, ll>; using pls = pair<ll, string>; using vpsl = vector<psl>; using vpls = vector<pls>; using vi = vector<int>; using vvi = vector<vi>; using vl = vector<ll>; using vvl = vector<vl>; using vb = vector<bool>; using vvb = vector<vb>; using vc = vector<char>; using vvc = vector<vc>; using vd = vector<double>; using vvd = vector<vd>; using vs = vector<string>; using vvs = vector<vs>; // clang-format on const double PI = acos(-1); const int DX[4] = { 1, 0, -1, 0 }; // (下,右,上,左) const int DY[4] = { 0, 1, 0, -1 }; const int INF = 1001001001; const ll INFL = 4004004003094073385LL; // (int)INFL = INF, (int)(-INFL) = -INF; const string ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; const string abc = "abcdefghijklmnopqrstuvwxyz"; // 大きい値を第一引数に上書き template<typename T1, typename T2> inline bool chmax(T1 &a, T2 b) { bool compare = a < b; if (compare) a = b; return compare; } // 小さい値を第一引数に上書き template<typename T1, typename T2> inline bool chmin(T1 &a, T2 b) { bool compare = a > b; if (compare) a = b; return compare; } // 文字列区切り static vector<string> Split(const string &s, char delim = ' ') { vector<string> elems; string item; for (char ch : s) { if (ch == delim) { if (!item.empty()) elems.push_back(item); item.clear(); } else item += ch; } if (!item.empty()) elems.push_back(item); return elems; } // index取得 template<typename T> ll IndexOf(vector<T> vt, T target) { return std::distance(vt.begin(), std::find(all(vt), target)); } // 最小値取得 template<typename T> T Min(vector<T> vt) { return *std::min_element(all(vt)); } // 最大値取得 template<typename T> T Max(vector<T> vt) { return *std::max_element(all(vt)); } } // namespace Contest // 入出力 namespace IO { using namespace Contest; class Scanner { private: int _int; vector<string> _str; public: Scanner() { _int = 0; _str.clear(); } string Next() { if (_int < (int)_str.size()) return _str[_int++]; string st; getline(std::cin, st); while (st == "") getline(std::cin, st); _str = Contest::Split(st); if (_str.size() == 0) return Next(); _int = 0; return _str[_int++]; } string NextLine() { if (_int < (int)_str.size()) { vector<string> vec(_str.size() - _int); std::copy(_str.begin() + _int, _str.end(), vec.begin()); auto s = " " + vec.Join(" "); _str.clear(); return s; } string st; getline(std::cin, st); while (st == "") getline(std::cin, st); _str.clear(); _str.emplace_back(st); _int = 0; return _str[_int++]; } int NextInt() { return std::stoi(Next()); } ll NextLL() { return std::stoll(Next()); } double NextDouble() { return std::stod(Next()); } }; auto sc = new Scanner(); struct FastIO { FastIO() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); std::cout << std::fixed << std::setprecision(18); } } FastIOtmp; ll InputNum() { return sc->NextLL(); } pll InputNumPair() { pll p(InputNum(), InputNum()); return p; } vpll InputsNumPair(ll n) { vpll vec; rep(i, n) vec.emplace_back(InputNumPair()); return vec; } vl InputNums(ll n) { vl vec; rep(i, n) vec.emplace_back(InputNum()); return vec; } vvl InputsNums(ll h, ll w) { vvl vec; rep(i, h) vec.emplace_back(InputNums(w)); return vec; } string InputString() { return sc->Next(); } string InputStringLine() { return sc->NextLine(); } vs InputStrings(ll n) { vs vec; rep(i, n) vec.emplace_back(InputString()); return vec; } vs InputStringLines(ll n) { vs vec; rep(i, n) vec.emplace_back(InputStringLine()); return vec; } vvs InputsStrings(ll h, ll w) { vvs vec; rep(i, h) vec.emplace_back(InputStrings(w)); return vec; } template<typename T> void Output(T n, string end = el) { std::cout << n << end; } void Output(bool n, string t = "Yes", string f = "No") { std::cout << (n ? t : f) << el; } void Output(double n, string end = el) { std::cout << n << end; } void Output(string n, string end = el) { std::cout << n << end; } void Output(const char *n) { Output(string(n)); } void Output(vs n, string sep = " ", string end = el) { Output(n.Join(sep), end); } void Output(vvs n, string sep = " ", string end = el) { rep(i, n.size()) Output(n[i].Join(sep), end); } void Output(ll n, string end = el) { std::cout << n << end; } void Output(pll n, string sep = " ", string end = el) { std::cout << n.first << sep << n.second << end; } void Output(vpll n, string sep = " ", string end = el) { rep(i, n.size()) Output(n[i], sep, end); } void Output(vl n, string sep = " ") { Output(n.Join(sep)); } void Output(vvl n, string sep = " ", string end = el) { rep(i, n.size()) Output(n[i].Join(sep), end); } } // namespace IO void Solve() { using namespace std; using namespace IO; auto N = InputNum(); auto M = InputNum(); ll count = 0; rep(i, N) if (InputString().substr(0, 4) != "oooo" & InputNum() >= 1200) count++; Output(count); } int main() { Solve(); return 0; }