Codeforces Round 865 (Div. 2)

发布时间 2023-04-10 13:02:33作者: EdGrass

Codeforces Round 865 (Div. 2)

A. Ian Visits Mary

void solve(){
    int x=read(),y=read();

    if(__gcd(y,x)!=1){
        cout<<2<<endl;
        cout<<1<<" "<<y-1<<endl;
        cout<<x<<" "<<y<<endl;
    }else {
        cout<<1<<"\n";
        cout<<x<<" "<<y<<"\n";
    }
    //puts(ans>0?"YES":"NO");
    //puts(ans>0?"Yes":"No");
}

 

B. Grid Reconstruction

自己写了挺长一串的 这是赛后学习jiangly的代码

void solve(){
    int n=read();
    for(int i=0;i<2;i++){
        for(int j=0;j<n;j++){
            int x;
            if((i+j)&1) x=j+1;
            else x=(j+n-1)%n+n+1;
            cout<<x<<" ";
            if(j==n-1)cout<<"\n";
        }
    }
    //puts(ans>0?"YES":"NO");
    //puts(ans>0?"Yes":"No");
}

 

C. Ian and Array Sorting

int a[N];
void solve(){
    int n=read(),ans=1;
    for(int i=1;i<=n;i++){
        a[i]=read();
    }
    int d;
    for(int i=n-1;i>=2;i--){
        d=a[i]-a[i+1];
        if(d<0)d=0;
        if(d){
            a[i]-=d;
            a[i-1]-=d;
        }
    }
    d=a[1]-a[2];
    if(d<0)d=0;
    if(d&&(n-1)%2==1){
        for(int i=2;i<n;i++){
           if(i!=2) d=a[i-1]-a[i];
           if(d<0)d=0;
            a[i]+=d;
            a[i+1]+=d;
            
        }
    }
    if(a[n]<a[n-1])ans=0;
    puts(ans>0?"YES":"NO");
    //puts(ans>0?"Yes":"No");
}