蒟蒻是菜逼 T2 T3 都不会,只能写暴力。
T1 大水题,然而我写挂了。刚对拍1000组就挂了。
#include<bits/stdc++.h>
using namespace std;
inline int qr() {
int k=0;char ch=getchar();while(!isdigit(ch))ch=getchar();
while(isdigit(ch)){k=(k<<1)+(k<<3)+(ch^48);ch=getchar();}
return k;
}
char S[20];int U;
inline void wt(int x) {
do{S[++U]=x%10^48;x/=10;}while(x);
while(U) putchar(S[U--]);putchar(' ');
}
const int N=2e5+2;
int n,m,s;
bool visl[N];
bool visr[N];
int cha[N];
int sum[N];
int an1[N],tot1;
int an2[N],tot2;
int main() {
freopen("station.in","r",stdin);
freopen("station.out","w",stdout);
n=qr(),m=qr(),s=qr();
for(int i=1,l,r;i<=m;i++) {
l=qr(),r=qr();
visl[l]=1;visr[r]=1;
if(l>r) swap(l,r);
cha[l]++;cha[r+1]--;
}
for(int i=1;i<=n;i++)
sum[i]=sum[i-1]+cha[i];
for(int i=s;i>=1;i--) {
if(!sum[i]) break;
if(visl[i]&&i!=s) an1[++tot1]=i;
}
for(int i=s;i<=n;i++) {
if(!sum[i]) break;
if(visr[i]&&i!=s) an2[++tot2]=i;
}
for(int i=tot1;i>=1;i--) wt(an1[i]);
for(int i=1;i<=tot2;i++) wt(an2[i]);
return 0;
}
差分的那个地方 r+1 应该改成 r,首尾相接的数据就会挂掉。
但是我们应该相信 ccf 的水度。
有奖竞猜这份代码的分数。
悬赏我的关注