给大家看个笑话
  • 板块灌水区
  • 楼主聊机
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/4/1 15:13
  • 上次更新2023/10/23 19:47:51
查看原帖
给大家看个笑话
290959
聊机楼主2023/4/1 15:13

蒟蒻是菜逼 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 的水度。

有奖竞猜这份代码的分数。

悬赏我的关注

2023/4/1 15:13
加载中...