seerc 2013 C fread読み込みについて

991 ワード

入力が大きいので、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
",ans); } return 0; }