RE求调
查看原帖
RE求调
782481
wuyue__X楼主2025/2/4 13:34

调了好几天了,莫名其妙会RE,样例能过,好像是d数组会越界

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=3e5+10;
int n,m,k,t,x[N],y[N],f[N],tmp[N],t1[N],d[N];
int cnt,w;
struct node{
    int y,id;
    friend bool operator<(node a,node b){
        return a.y<b.y;
    }
};
vector<node> v1[N];
signed main(){
    scanf("%lld%lld",&n,&w);
    for(int i=1;i<=n;i++){
        scanf("%lld%lld",&x[i],&y[i]);
        tmp[x[i]]++;
        d[i]=tmp[x[i]];
        v1[x[i]].push_back({y[i],i});
    }
    for(int i=1;i<=w;i++){
        if(v1[i].size()) sort(v1[i].begin(),v1[i].end());
    }
    bool flg=0;
    for(int i=1;i<=n;i++){
        if(flg) break;
        flg=1;
        for(int j=1;j<=w;j++){
            if(v1[j].size()>0){
                flg=0;
                break;
            }
        }
        for(int j=1;j<=w;j++){
            
            if(v1[j].size()<i){
                f[i]=1e13;
            }
            f[i]=max(f[i],v1[j][i-1].y);
        }
    }

    for(int i=1;i<=n;i++) {
        f[i]=max(f[i],f[i-1]+1);
        if(f[i]>=1e13){
            break;
        }
    }
    // for(int i=1;i<=n;i++){
    //     printf("%lld ",d[i]);
    // }
    scanf("%lld",&m);


  
    for(int i=1;i<=m;i++){

        scanf("%lld%lld",&t,&k);
        if(t<f[d[k]]){
            printf("Yes\n");
        }
        else{
            printf("No\n");
        }
    }







    return 0;
}
2025/2/4 13:34
加载中...