本来题目Ti<1000000000,数据太水了,最大不超过50000
#include<stdio.h> #include<string.h> int link[100002],mark[100002][2]; int main() { int i,k,t,op=1,n,m,max,a,b; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); memset(link,0,sizeof(link)); memset(mark,0,sizeof(mark)); max=0; for(i=1;i<=n;i++) { scanf("%d%d",&a,&b); mark[a][0]++; mark[b][1]++; if(max<b)max=b; } k=0; for(i=1;i<=max;i++) { k+=mark[i][0]; link[i]=k; k-=mark[i][1]; } printf("Case #%d:\n",op++); while(m--) { scanf("%d",&a); printf("%d\n",link[a]); } } return 0; }