Skip to content

Instantly share code, notes, and snippets.

@harshil93
Last active August 29, 2015 14:13
Show Gist options
  • Select an option

  • Save harshil93/961f1f66c1072a660a5a to your computer and use it in GitHub Desktop.

Select an option

Save harshil93/961f1f66c1072a660a5a to your computer and use it in GitHub Desktop.

Revisions

  1. harshil93 renamed this gist Jan 8, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. harshil93 revised this gist Jan 8, 2015. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions Fast Input Output C++
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,5 @@
    // FAST OUTPUT IS ENABLED ONLY WHEN 'ONLINE_JUDGE' IS DEFINED

    #include <cstdio>
    #include <iostream>
    using std::string;
  3. harshil93 renamed this gist Jan 8, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  4. harshil93 created this gist Jan 8, 2015.
    107 changes: 107 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,107 @@
    #include <cstdio>
    #include <iostream>
    using std::string;

    static struct IO {
    char tmp[1 << 10];

    // fast input routines
    char cur;

    //#define nextChar() (cur = getc_unlocked(stdin))
    //#define peekChar() (cur)
    inline char nextChar() { return cur = getc_unlocked(stdin); }
    inline char peekChar() { return cur; }

    inline operator bool() { return peekChar(); }
    inline static bool isBlank(char c) { return (c < '-' && c); }
    inline bool skipBlanks() { while (isBlank(nextChar())); return peekChar() != 0; }

    inline IO& operator >> (char & c) { c = nextChar(); return *this; }

    inline IO& operator >> (char * buf) {
    if (skipBlanks()) {
    if (peekChar()) {
    *(buf++) = peekChar();
    while (!isBlank(nextChar())) *(buf++) = peekChar();
    } *(buf++) = 0; } return *this; }

    inline IO& operator >> (string & s) {
    if (skipBlanks()) { s.clear(); s += peekChar();
    while (!isBlank(nextChar())) s += peekChar(); }
    return *this; }

    inline IO& operator >> (double & d) { if ((*this) >> tmp) sscanf(tmp, "%lf", &d); return *this; }

    #define defineInFor(intType) \
    inline IO& operator >>(intType & n) { \
    if (skipBlanks()) { \
    int sign = +1; \
    if (peekChar() == '-') { \
    sign = -1; \
    n = nextChar() - '0'; \
    } else \
    n = peekChar() - '0'; \
    while (!isBlank(nextChar())) { \
    n += n + (n << 3) + peekChar() - 48; \
    } \
    n *= sign; \
    } \
    return *this; \
    }

    defineInFor(int)
    defineInFor(unsigned int)
    defineInFor(long long)

    // fast output routines

    //#define putChar(c) putc_unlocked((c), stdout)
    inline void putChar(char c) { putc_unlocked(c, stdout); }
    inline IO& operator << (char c) { putChar(c); return *this; }
    inline IO& operator << (const char * s) { while (*s) putChar(*s++); return *this; }

    inline IO& operator << (const string & s) { for (int i = 0; i < (int)s.size(); ++i) putChar(s[i]); return *this; }

    char * toString(double d) { sprintf(tmp, "%lf%c", d, '\0'); return tmp; }
    inline IO& operator << (double d) { return (*this) << toString(d); }


    #define defineOutFor(intType) \
    inline char * toString(intType n) { \
    char * p = (tmp + 30); \
    if (n) { \
    bool isNeg = 0; \
    if (n < 0) isNeg = 1, n = -n; \
    while (n) \
    *--p = (n % 10) + '0', n /= 10; \
    if (isNeg) *--p = '-'; \
    } else *--p = '0'; \
    return p; \
    } \
    inline IO& operator << (intType n) { return (*this) << toString(n); }

    defineOutFor(int)
    defineOutFor(long long)

    #define endl ('\n')
    #define cout __io__
    #define cin __io__
    } __io__;

    int main()
    {
    int N, K, ans = 0;

    for (cin >> N >> K; N--;)
    {
    register int a;
    cin >> a;
    if (a % K == 0)
    ans++;
    }

    cout << ans << endl;

    return 0;
    }