4775158_ac_375ms_2936k.cpp

来自「部分PKU上的源码」· C++ 代码 · 共 46 行

CPP
46
字号
#include<iostream>
#include<stdlib.h>
using namespace std;
char x[100005][2][12];
int i;
int shun[100005];
char s[12];
int compare(const void*p1,const void *p2)
{
	int q1=*(int*)p1;
	int q2=*(int*)p2;
	return strcmp(x[q1][1],x[q2][1]);
}
void bs(char s[])
{
	int left=0,right=i-1;
	while(left<=right)
	{
		int mid=(left+right)/2;
		int re=strcmp(x[shun[mid]][1],s);
		if(re==0){printf("%s\n",x[shun[mid]][0]);return;}
		if(re>0)right=mid-1;
		else left=mid+1;
	}
	printf("eh\n");
}
int main()
{
	i=0;
	while(1)
	{
		char a=getchar();
		if(a=='\n') break;
		x[i][0][0]=a;
		scanf("%s%s",x[i][0]+1,x[i][1]);
		getchar();
		shun[i]=i;
		i++;
	}
	qsort(shun,i,sizeof(int),compare);
	while(scanf("%s",s)!=EOF)
	{
		bs(s); 
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?