Cod sursa(job #593750)

Utilizator maritimCristian Lambru maritim Data 4 iunie 2011 14:37:02
Problema Mins Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>

#define MaxN 1001

int A[MaxN];
int c;
int d;
unsigned long long MAX;
int MAX1;
int MIN1;

inline int min(int a,int b)
{
	return a<b? a:b;
}

inline int max(int a,int b)
{
	return a>b? a:b;
}

int main()
{
	FILE *f = fopen("mins.in","r");
	FILE *g = fopen("mins.out","w");
	
	fscanf(f,"%d %d",&c,&d);
	MAX1 = max(c-1,d-1);
	MIN1 = min(c-1,d-1);
	MAX = 1;
	for(int i=2;i<=MAX1;i++)
	{
		for(int j=i+i;j<=MAX1;j+=i)
			A[j] += (min(j-1,MIN1)*i/j-A[i]);
		if(MIN1>=i)
			MAX += 2*(i-1-A[i]);
		else
			MAX += MIN1-A[i];
	}
	fprintf(g,"%llu ",MAX);
//	fprintf(g,"%llu ",(c-1)*(d-1));
//	for(int i=1;i<=MAX1;i++)
//		printf("%d %d\n",i,A[i]);
	
	fclose(g);
	fclose(f);
	return 0;
}