Cod sursa(job #662484)

Utilizator harababurelPuscas Sergiu harababurel Data 16 ianuarie 2012 19:11:19
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
long R, i, j, rez=0;
short d;


int put(long nr) {
	long i, k=1, putere=0;
	for(i=1; i*d<=nr; i++) {
		putere+=i;
		
	}
	return putere;
}
		
long p1;

int main() {
	ifstream f("pascal.in");
	ofstream g("pascal.out");
	
	f>>R>>d;
	
	// R!/((R-j)!*j!) = elementul j de pe linia R;
	
	
	long p2, p3;
	p1=put(R);

		
	//pe randul R avem R+1 numere
	
	for(j=1; j<(R+1)/2; j++) {  //iau jumatate din elementele de pe linia R
		p2=put(R-j);
		p3=put(j);
		
		if(p1 - p2 - p3 > 0) { rez++; }
	}
	
	rez*=2;
	
	if((R+1)/2 % 2==1) { //inseamna ca am un numar la mijloc
		j= int((R+1)/2)+1;
		p2=put(R-j);
		p3=put(j);
		if(p1 - p2 - p3 > 0) { rez++; }
	}
	
	
	
	
	
	g<<rez;
	
	f.close();
	g.close();
	return 0;
}