#include <unistd.h>
#include <string>
#include <vector>
#include <map>
#include <deque>
#include <iostream>
#include <algorithm>
using namespace std;
#define REP(i,n) for(int _n=(n), i=0;i<_n;++i)
#define FOR(i,a,b) for(int i=(a),_b=(b);i<=_b;++i)
#define FORD(i,a,b) for(int i=(a),_b=(b);i>=_b;--i)
#define TRACE(x) cerr << "TRACE(" #x ")" << endl;
#define DEBUG(x) cerr << #x << " = " << (x) << endl;
typedef long long LL;
typedef unsigned long long ULL;
using VINT = vector<int>;
using VLL = vector<LL>;
using VULL = vector<ULL>;
// parser by tczajka
class Input {
public:
Input() { bufpos = bufend = buffer; eof = false; }
bool Eof() { return eof; }
char Peek() { if(bufpos == bufend) Grab(); return *bufpos; }
unsigned char UPeek() { return static_cast<unsigned char>(Peek()); }
void SkipWS();
template<class T> T Get();
void operator()() {}
template<class Arg, class... Args> void operator()(Arg &arg, Args &... args) {
arg = Get<Arg>();
operator()(args...);
}
private:
static const int BUFSIZE = 1<<16;
char buffer[BUFSIZE];
char *bufpos;
char *bufend;
bool eof;
void Grab();
};
void Input::Grab() {
if(eof) return;
bufpos = buffer;
bufend = buffer + read(0, buffer, BUFSIZE);
if(bufend==bufpos) { eof=true; *bufpos=0; }
}
template<> inline char Input::Get<char>() {
char res = Peek();
++bufpos;
return res;
}
void Input::SkipWS() {
while(isspace(UPeek())) Get<char>();
}
template<> unsigned Input::Get<unsigned>() {
SkipWS();
unsigned x = 0;
while(isdigit(UPeek())) {
x = 10u * x + (Get<char>()-'0');
}
return x;
}
template<> int Input::Get<int>() {
SkipWS();
bool neg = false;
if(Peek()=='-') { neg=true; Get<char>(); }
unsigned x = Get<unsigned>();
if (neg) x = -x;
return static_cast<int>(x);
}
template<> ULL Input::Get<ULL>() {
SkipWS();
ULL x = 0;
while(isdigit(UPeek())) {
x = 10ULL * x + (Get<char>()-'0');
}
return x;
}
template<> LL Input::Get<LL>() {
SkipWS();
bool neg = false;
if(Peek()=='-') { neg=true; Get<char>(); }
ULL x = Get<ULL>();
if (neg) x = -x;
return static_cast<LL>(x);
}
template<> string Input::Get<string>() {
SkipWS();
string s;
while(!Eof() && !isspace(UPeek())) s += Get<char>();
return s;
}
struct Node {
vector<int> next_nodes;
};
Input IN;
int main() {
int n;
std::cin >> n;
int testsInGroup = n/10;
int result = 0;
REP(i, 10) {
bool isGood = true;
char c;
REP(j, testsInGroup) {
std::cin >> c;
if (c == 'N')
isGood = false;
}
if (isGood)
result++;
}
std::cout << result << std::endl;
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | #include <unistd.h> #include <string> #include <vector> #include <map> #include <deque> #include <iostream> #include <algorithm> using namespace std; #define REP(i,n) for(int _n=(n), i=0;i<_n;++i) #define FOR(i,a,b) for(int i=(a),_b=(b);i<=_b;++i) #define FORD(i,a,b) for(int i=(a),_b=(b);i>=_b;--i) #define TRACE(x) cerr << "TRACE(" #x ")" << endl; #define DEBUG(x) cerr << #x << " = " << (x) << endl; typedef long long LL; typedef unsigned long long ULL; using VINT = vector<int>; using VLL = vector<LL>; using VULL = vector<ULL>; // parser by tczajka class Input { public: Input() { bufpos = bufend = buffer; eof = false; } bool Eof() { return eof; } char Peek() { if(bufpos == bufend) Grab(); return *bufpos; } unsigned char UPeek() { return static_cast<unsigned char>(Peek()); } void SkipWS(); template<class T> T Get(); void operator()() {} template<class Arg, class... Args> void operator()(Arg &arg, Args &... args) { arg = Get<Arg>(); operator()(args...); } private: static const int BUFSIZE = 1<<16; char buffer[BUFSIZE]; char *bufpos; char *bufend; bool eof; void Grab(); }; void Input::Grab() { if(eof) return; bufpos = buffer; bufend = buffer + read(0, buffer, BUFSIZE); if(bufend==bufpos) { eof=true; *bufpos=0; } } template<> inline char Input::Get<char>() { char res = Peek(); ++bufpos; return res; } void Input::SkipWS() { while(isspace(UPeek())) Get<char>(); } template<> unsigned Input::Get<unsigned>() { SkipWS(); unsigned x = 0; while(isdigit(UPeek())) { x = 10u * x + (Get<char>()-'0'); } return x; } template<> int Input::Get<int>() { SkipWS(); bool neg = false; if(Peek()=='-') { neg=true; Get<char>(); } unsigned x = Get<unsigned>(); if (neg) x = -x; return static_cast<int>(x); } template<> ULL Input::Get<ULL>() { SkipWS(); ULL x = 0; while(isdigit(UPeek())) { x = 10ULL * x + (Get<char>()-'0'); } return x; } template<> LL Input::Get<LL>() { SkipWS(); bool neg = false; if(Peek()=='-') { neg=true; Get<char>(); } ULL x = Get<ULL>(); if (neg) x = -x; return static_cast<LL>(x); } template<> string Input::Get<string>() { SkipWS(); string s; while(!Eof() && !isspace(UPeek())) s += Get<char>(); return s; } struct Node { vector<int> next_nodes; }; Input IN; int main() { int n; std::cin >> n; int testsInGroup = n/10; int result = 0; REP(i, 10) { bool isGood = true; char c; REP(j, testsInGroup) { std::cin >> c; if (c == 'N') isGood = false; } if (isGood) result++; } std::cout << result << std::endl; return 0; } |
English