记录编号 155419 评测结果 AAAAAAAAAA
题目名称 [HAOI 2012]外星人 最终得分 100
用户昵称 GravatarAsm.Def 是否通过 通过
代码语言 C++ 运行时间 0.083 s
提交时间 2015-03-28 21:17:19 内存使用 0.67 MiB
显示代码纯文本
/***********************************************************************/ 
/**********************By Asm.Def-Wu Jiaxin*****************************/ 
/***********************************************************************/ 
#include <cstdio>
#include <cctype>
#include <ctime>
using namespace std; 
#define SetFile(x) ( freopen(#x".in", "r", stdin), freopen(#x".out", "w", stdout) ) 
#define getc() getchar() 
template<class T>inline void getd(T &x){ 
	char ch = getc();
	bool neg = false; 
	while(!isdigit(ch) && ch != '-')ch = getc(); 
	if(ch == '-')ch = getc(), neg = true; 
	x = ch - '0'; 
	while(isdigit(ch = getc()))x = x * 10 - '0' + ch; 
	if(neg)x = -x; 
} 
/***********************************************************************/ 
const int maxp = 100003; 
int cnt[maxp]; 
inline void sieve(){ 
	int Prime[maxp], pcnt = 0;
	bool not_p[maxp] = {0};
	int i, j; 
	cnt[1] = 1;//Don't mind it...in fact it's undefined on 1...
	for(i = 2;i <= 100000;++i){ 
		if(!not_p[i])Prime[pcnt++] = i, cnt[i] = cnt[i-1]; 
		for(j = 0;j < pcnt;++j){ 
			if(i * Prime[j] > 100000)break; 
			not_p[i * Prime[j]] = true;
			cnt[i * Prime[j]] = cnt[i] + cnt[Prime[j]];
			if(i % Prime[j] == 0)break;
		}
	}
}

inline void work(){ 
	int m, i, p;
	getd(m); 
	long long ans, a; 
	getd(p), getd(a); 
	ans = a * cnt[p] + (p != 2); 
	for(i = 1;i < m;++i){ 
		getd(p), getd(a); 
		ans += a * cnt[p]; 
	} 
	printf("%lld\n", ans); 
} 
int main(){ 
#ifdef DEBUG 
	freopen("test.txt", "r", stdin); 
#elif !defined ONLINE_JUDGE 
	SetFile(alien); 
#endif 
	sieve();
	int T;getd(T); 
	while(T--) work(); 
#ifdef DEBUG 
	printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC); 
#endif 
	return 0; 
}