Pagini recente » Cod sursa (job #71189) | Cod sursa (job #2108876) | Cod sursa (job #229892) | Cod sursa (job #2077546) | Cod sursa (job #2894987)
#include <iostream>
#include <vector>
using namespace std;
class InParser{///admite citirea de int,long long, char si a cuvintelor
const int SIZE=50000;
FILE *fin;
char *buffer;
int p;
char read_ch(){
++p;
if(p==SIZE){
p=0;
fread(buffer,sizeof(char),SIZE,fin);
}
return buffer[p];
}
public:
InParser(const char *name){
fin=fopen(name,"r");
buffer=new char[SIZE];
p=SIZE-1;
}
~InParser(){
delete []buffer;
}
template<class integer>//pt int si long long
InParser& operator>>(integer &n){
char ch;
do{
ch=read_ch();
}while(!isdigit(ch)&&ch!='-');
int sign=1;
if(ch=='-'){
sign=-1;
ch=read_ch();
}
n=0;
do{
n=n*10+ch-'0';
ch=read_ch();
}while(isdigit(ch));
n*=sign;
return (*this);
}
InParser& operator>>(char &ch){
ch=read_ch();
return (*this);
}
InParser& operator>>(char *s){//pt citirea un cuvant(cuvintele se considera delimitate de ' ' sau '\n')
char ch;
do{
ch=read_ch();
}while(ch==' '||ch=='\n');
int ptr=0;
do{
s[ptr]=ch;
ptr++;
ch=read_ch();
}while(ch!=' '&&ch!='\n');
s[ptr]='\0';
return (*this);
}
};
class OutParser{///admite afisarea de int,long long, char si a cuvintelor
const int SIZE=50000;
FILE *fout;
char *buffer;
int p;
void write_ch(char ch){
if(p==SIZE){
fwrite(buffer,sizeof(char),SIZE,fout);
p=0;
}
buffer[p++]=ch;
}
public:
OutParser(const char *name){
fout=fopen(name,"w");
buffer= new char[SIZE];
p=0;
}
~OutParser(){
fwrite(buffer,sizeof(char),p,fout);
fclose(fout);
delete []buffer;
}
template<class integer>//pt int si long long
OutParser& operator<<(integer n){
if(n==0){
write_ch(0);
return (*this);
}
bool negative=false;
if(n<0){
n*=-1;
negative=true;
}
vector<char>v;
while(n){
v.push_back('0'+n%10);
n/=10;
}
if(negative){
v.push_back('-');
}
int len=v.size();
for(int i=len-1;i>=0;i--){
write_ch(v[i]);
}
return (*this);
}
OutParser& operator<<(char ch){
write_ch(ch);
return (*this);
}
OutParser& operator<<(char *ch){//pt afisarea unui cuvant
while(*ch){
write_ch(*ch);
++ch;
}
return (*this);
}
};
InParser fin("adunare.in");
OutParser fout("adunare.out");
int main(){
long long a,b;
fin>>a>>b;
fout<<a+b;
}