题目链接 我的代码如下
#include<bits/stdc++.h>
using namespace std;
#define sf(x) scanf("%lld",&x)
#define int long long
struct p{
int i,v;
}a[100007];
int n,m;
bool cmp(p &a,p& b){
return a.i<b.i;
}
void solve(){
sf(n);
sf(m);
for(int i=0;i<m;i++){
sf(a[i].i);
sf(a[i].v);
}
sort(a,a+m,cmp);
for(int i=0;i<m;i++){
if(i==0){
if(a[i].v>a[i].i){
cout<<"No"<<endl;
return;
}
}
else{
if((a[i].v!=a[i-1].v+a[i].i-a[i-1].i&&a[i].v>a[i].i-a[i-1].i-1)||a[i].i==a[i-1].i){
cout<<"No"<<endl;
return;
}
}
}
cout<<"Yes"<<endl;
}
signed main(){
int t;
sf(t);
while(t--)solve();
// return 0;
}
会WA,但如果把第31行的
||a[i].i==a[i-1].i
这部分去掉就能AC,想问一下这是为什么?