Cod sursa(job #1922957)

Utilizator Kln1000Ciobanu Bogdan Kln1000 Data 10 martie 2017 19:54:37
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <iostream>

using namespace std;

class parser{
public:
    parser (){};
    parser (const char *file_name){
        input_file.open(file_name,ios::in | ios::binary);
        input_file.sync_with_stdio(false);
        index=0;
        input_file.read(buffer,SIZE);
    }
    parser &operator >>(int &n){
        for (;buffer[index]<'0' or buffer[index]>'9';inc());
        n&=0;
        for (;buffer[index]>='0' and buffer[index]<='9';inc())
            n=10*n+buffer[index]-'0';
        return *this;
    }
    ~parser(){
        input_file.close();}
private:
    static const int SIZE=0x400000;
    char buffer[SIZE];
    int index=0;
    fstream input_file;
    void inc(){
        if (++index==SIZE){index=0;input_file.read(buffer,SIZE);}
    }
};

parser f ("adunare.in");
ofstream t ("adunare.out");

int main(){
    int a,b;
    f>>a>>b;
    t<<a+b;
    return 0;
}