NC16500. [NOIP2014]珠心算测试
描述
输入描述
输入共两行,第一行包含一个整数 n ,表示测试题中给出的正整数个数。
第二行有 n 个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。
输出描述
输出共一行,包含一个整数,表示测验题答案。
示例1
输入:
4 1 2 3 4
输出:
2
说明:
由 1+2=3,1+3=4 ,故满足测试要求的答案为 2 。Pascal(fpc 3.0.2) 解法, 执行用时: 4ms, 内存消耗: 256K, 提交时间: 2019-04-17 21:10:22
var n,i,j,k:integer; a,b:array[1..101] of integer; begin readln(n); fillchar(b,sizeof(b),0); for i:=1 to n do read(a[i]); for i:=1 to n do for j:=1 to n do for k:=j+1 to n do if a[i]=a[j]+a[k] then b[i]:=1; k:=0; for i:=1 to n do if b[i]=1 then k:=k+1; writeln(k); end.
C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 484K, 提交时间: 2018-09-23 09:33:55
#include<iostream> using namespace std; int main() { int a[105]={0},h[20005]={0},i,j,s=0,n; cin>>n; for(i=1;i<=n;i++)cin>>a[i]; for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { h[a[i]+a[j]]++; } for(i=1;i<=n;i++)if(h[a[i]]!=0)s++; cout<<s; }
Python3(3.5.2) 解法, 执行用时: 44ms, 内存消耗: 3916K, 提交时间: 2019-08-27 09:51:25
n=input() a=list(map(int,input().split())) print(len(set(a)&set([i+j for i in a for j in a if i!=j])))