Cod sursa(job #2011302)

Utilizator MaligMamaliga cu smantana Malig Data 15 august 2017 19:30:16
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.92 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;
ofstream out("test.out");

#define ll long long
#define ull unsigned long long
#define ui unsigned int
#define pb push_back
const int NMax = 2e5 + 5;
const int inf = 1e9 + 5;
const int mod = 100003;

class parser {
    using integer = int;
    static const int strMax = 1e3 + 5;

    ifstream in;
    char str[2*strMax],aux[strMax],*p;
    bool failed;

    public:
    parser(string s) {
        in.open(s);
        str[0] = '\0';
        p = str;
        failed = false;
    }

    parser& operator>> (integer& nr) {
        if (*p == '\0') {
            in.getline(str,strMax,'&');
            //cout<<str<<'\n';
            in.getline(aux,strMax,' ');
            //cout<<aux<<'\n';
            strcat(str,aux);
            int idx = strlen(str) - 1;
            while (!('0' <= str[idx] && str[idx] <= '9')) {
                --idx;
            }
            str[idx+1] = '\0';
            //cout<<str<<'\n';
            p = str;

            if (*p == '\0') {
                nr = 0;
                failed = true;
                return *this;
            }
        }

        while (!('0' <= *p && *p <= '9')) {
            ++p;
        }

        nr = 0;
        while ('0' <= *p && *p <= '9') {
            nr = nr * 10 + *p++ - '0';
        }
        return *this;
    }

    bool fail() {
        return failed;
    }

    void print() {
        cout<<str<<'\n';
    }

    void close() {
        in.close();
    }
};
parser in("test.in");

int main() {

    /*
    int a;
    in>>a;
    out<<a<<'\n';
    in>>a;
    while (!in.fail()) {

        out<<a<<' ';

        in>>a;
    }
    //*/

    int N;
    in>>N;
    out<<N<<'\n';
    for (int i=1;i <= N;++i) {
        int val;
        in>>val;
        out<<val<<' ';
    }

    in.close();out.close();
    return 0;
}