找出没有出现的数 题解
标题:找出没有出现的数
说明
每个测试点时限:1 second
每个测试点内存限制:1 MB
测试点数量:10
是否有Special Judge:否
使用标准输入输出
每个测试点内存限制:1 MB
测试点数量:10
是否有Special Judge:否
使用标准输入输出
题目描述
给你一个n和n-2个不重复的在1~n之间数
找出没有出现的那2个数
n <= 1000000
输入格式
第一行,一个数n
第二行,n-2个在1~n之间不重复的数,用一个空格隔开
输出格式
一行,两个没有出现的数
从小到大排序
样例输入
样例输出
这题太有意思了,希望大家能动脑经想想,很妙的一道题!
(按ctrl+A看答案)var
k,i:longint;a,b,r,t1,t2:extended;
n:int64;
begin
assign(input,'1.in');reset(input);
readln(n);
a:=((1+n)*n) div 2;
b:=n*(n+1)*(2*n+1)/6;
for i:=1 to n-2 do
begin
read(k);
a:=a-k;
b:=b-sqr(k);
end;
t1:=(a+sqrt(2*b-sqr(a)))/2;
t2:=abs((a-sqrt(2*b-sqr(a)))/2);
if t1<t2 then write(t1:0:0,' ',t2:0:0) else write(t2:0:0,' ',t1:0:0);
end.