所有点都RE了,下载了第一个点,能过,但是不清楚RE原因
  • 板块P1918 保龄球
  • 楼主Zhang_kg
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/3/22 16:26
  • 上次更新2023/11/5 01:44:33
查看原帖
所有点都RE了,下载了第一个点,能过,但是不清楚RE原因
390313
Zhang_kg楼主2021/3/22 16:26
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<malloc.h>
#define TRUE	1
#define FALSE	0
#define OK      1
#define ERROR   0
#define INFEASIBLE  -1
#define OVERFLOW    -2
int a[1000005][4];
int order(const void* p1, const void *p2){
	int *p=p1;
	int *pp=p2;
	return (*p-*pp);
}
int find(int b, int low, int high){
	if(low>high) return 0;
	if(low==high&&a[low][0]!=b) return 0;
	int mid=(low+high)/2;
	if(a[mid][0]>b){
		return find(b, low, mid-1); 
	}
	if(a[mid][0]<b) return find(b, mid+1, high);
	if(a[mid][0]==b) return a[mid][1];
}
int main(){
	FILE * IN, *OUT;
	IN=fopen("bowling.in", "r");
	OUT=fopen("bowling.out", "w");
	int n;
	fscanf(IN, "%d", &n);
	int i;
	for(i=0; i<n; i++){
		fscanf(IN, "%d", &a[i][0]);
		a[i][1]=i+1;
	}
	int m;
	int b;
	fscanf(IN, "%d", &m);
	qsort(a, n, sizeof(a[0]), order);
	
	for(i=0; i<m; i++){
		fscanf(IN, "%d", &b);
		fprintf(OUT, "%d\n", find(b, 0, n-1));
	}
	fclose(IN), fclose(OUT);
	return 0;
}

2021/3/22 16:26
加载中...