输入很大,之前完全不知道fread
#include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<cstring> #include <fstream> using namespace std; int m,n; int a[10005][10005]; int main() { int c; fread(&n,sizeof(n),1,stdin); fread(&m,sizeof(m),1,stdin); for(int i=0;i<n;i++) { fread(a[i],sizeof(int),m,stdin); } int l,r; while(fread(&l,sizeof(l),1,stdin)!=0) { fread(&r,sizeof(r),1,stdin); int last=m; int ans=0; for(int i=0;i<n;i++) { if(a[i][0]>r)break; int ll=lower_bound(a[i],a[i]+last,l)-a[i]; int rr=upper_bound(a[i],a[i]+last,r)-a[i]; last=rr; //cout<<ll<<" "<<rr<<endl; if(rr<=ll)continue; ans+=rr-ll; } printf("%d\n",ans); } return 0; }