求教,30分代码
查看原帖
求教,30分代码
246331
mystic_qwq楼主2022/10/11 23:20
#include <cstdio>
inline int geti(){
	char ch=getchar();int sum=0;
	while(ch>'9'||ch<'0')ch=getchar();
	while(ch>='0'&&ch<='9'){
		sum=(sum<<1)+(sum<<3)+ch-'0';
		ch=getchar();
	}
	return sum;
}
int a[100];
void qsort(int a[], int l, int r){
	int i = l, j = r, p = a[(l+r)/2], tmp;
	do {
		while(a[i]<p)i++;
		while(a[j]>p)j--;
		if(i<=j){
			tmp=a[i];a[i]=a[j];a[j]=tmp;
			i++;j--;
		}
	} while(i<=j);
	if(l<j)qsort(a,l,j);
	if(i<r)qsort(a,i,r);
}
/*inline void puti(int i){
	if (i > 9) puti(i / 10);
	putchar('0' + i % 10);
}*/
//#define enter putchar('\n');
//#define pasce putchar('\n');
int main(){
	//freopen("P2142_2.in", "r", stdin);
	//freopen("P2142programout.txt", "w", stdout);
	int n = geti(), ans = 0;//puti(n);enter
	for (int i = 0; i < n; i++) a[i] = geti();
	/*for (int i = 0; i < n; i++) {
		puti(a[i]);pasce
	}*/
	//enter
	qsort(a, 0, n - 1);
	for (int i = n-1; i >=0; i--){
		for(int j = 0; j < i; j++){
			for(int k = j+1; k<i;k++){
				if(a[j]+a[k]==a[i])ans++;
			}
		}
	}
	printf("%d", ans);
	return 0;
}
2022/10/11 23:20
加载中...