Codeforces 题目AC代码集锦

· · 休闲·娱乐

Codeforces 题目AC代码集锦

Ethflow Round 1 (Codeforces Round 1001, Div. 1 + Div. 2)

CF2062A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
char s[N];
void solve()
{
    scanf("%s",s+1);
    int n=strlen(s+1);
    int ans=0;
    for(int i=1;i<=n;i++)
        if(s[i]==49)
            ans++;
    write(ans);
    LF();
}
int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2062B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,a[N];
void solve()
{
    read(n);
    bool flag=true;
    for(int i=1;i<=n;i++)
    {
        read(a[i]);
        if(a[i]<=n-i<<1||a[i]<=i-1<<1)
            flag=false;
    }
    if(flag)
        puts("YES");
    else
        puts("NO");
}
int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2062C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=55;
const ll INF=0x3f3f3f3f3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n;
ll a[N],ans;
void dfs(int len,ll a[])
{
    if(len==1)
    {
        ans=max(ans,a[1]);
        return;
    }
    ll sum=0;
    for(int i=1;i<len;i++)
        sum+=a[i];
    sum+=a[len];
    ans=max(ans,sum);
    ll b[N];
    if(a[1]<a[len])
    {
        for(int i=1;i<len;i++)
            b[i]=a[i+1]-a[i];
        dfs(len-1,b);
    }
    else
    {
        for(int i=1;i<len;i++)
            b[i]=a[i]-a[i+1];
        dfs(len-1,b);
    }
}
void solve()
{
    read(n);
    ans=-INF;
    for(int i=1;i<=n;i++)
        read(a[i]);
    dfs(n,a);
    write(ans);
    LF();
}
int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2)

CF2061A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,a[N];
void solve()
{
    read(n);
    int cnt=0,flag=0;
    for(int i=1;i<=n;i++)
    {
        read(a[i]);
        if(a[i]&1)
            cnt++;
        else
            flag=2;
    }
    write(cnt+flag-1);
    LF();
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2061B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,a[N];
bool vis[N];
void solve()
{
    read(n);
    for(int i=1;i<=n;i++)
    {
        vis[i]=false;
        read(a[i]);
    }
    sort(a+1,a+1+n);
    bool flag=false;
    int u=0;
    for(int i=n-1;i;i--)
    if(a[i]==a[i+1])
    {
        vis[i]=vis[i+1]=true,u=a[i]+a[i];
        flag=true;
        break;
    }
    if(!flag)
    {
        puts("-1");
        return;
    }
    int q=INF,c,d;
    for(int i=1;i<n;i++)
    {
        if(vis[i])
            continue;
        if(vis[i+1])
        {
            if(i+2==n)
                break;
            if(a[i+3]-a[i]<q)
                q=a[i+3]-a[i],c=a[i],d=a[i+3];
        }
        else if(a[i+1]-a[i]<q)
            q=a[i+1]-a[i],c=a[i],d=a[i+1];
    }
    if(q<u)
    {
        write(u>>1,u>>1,c,d);
        LF();
    }
    else puts("-1");
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2061C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f,mod=998244353;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,a[N],f[N][2],g[N][2];
void solve()
{
    read(n);
    for(int i=1;i<=n;i++)
    {
        f[i][0]=f[i][1]=g[i][0]=g[i][1]=0;
        read(a[i]);
    }
    f[1][0]=0,f[1][1]=1,g[1][1]=1;
    if(!a[1])
        f[1][0]=1;
    for(int i=2;i<=n;i++)
    {
        f[i][1]=f[i-1][0],g[i][1]=g[i-1][0]+1;
        if(g[i-1][0]==a[i])
            f[i][0]=(f[i][0]+f[i-1][0])%mod,g[i][0]=g[i-1][0];
        if(g[i-1][1]==a[i])
            f[i][0]=(f[i][0]+f[i-1][1])%mod,g[i][0]=g[i-1][1];
    }
    write((f[n][0]+f[n][1])%mod);
    LF();
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2061D

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f,mod=998244353;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,m;
ll a[N],b[N];
map<ll,int> A,B;
bool need(ll x,int y)
{
    if(!x)
        return true;
    bool flag=false;
    while(A[x]&&y)
        A[x]--,y--;
    if(y)
    {
        int u=x>>1,v=x-u;
        if(u==v)
            flag|=need(u,y<<1);
        else
        {
            flag|=need(u,y);
            if(flag)
                return true;
            flag|=need(v,y);
        }
    }
    return flag;
}
void solve()
{
    A.clear(),B.clear();
    read(n,m);
    ll suma=0,sumb=0;
    for(int i=1;i<=n;i++)
    {
        read(a[i]);
        A[a[i]]++,suma+=a[i];
    }
    for(int i=1;i<=m;i++)
    {
        read(b[i]);
        B[b[i]]++,sumb+=b[i];
    }
    if(suma!=sumb)
    {
        puts("No");
        return;
    }
    for(map<ll,int> :: iterator it=B.begin();it!=B.end();it++)
    {
        bool flag=need(it->first,it->second);
        if(flag)
        {
            puts("No");
            return;
        }
    }
    puts("Yes");
}
int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

Codeforces Round 998 (Div. 3)

CF2060A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int a,b,c,d;
void solve()
{
    read(a,b,c,d);
    int e=a+b,f=c-b,g=d-c;
    if(f==g||e==f||e==g)
    {
        if(e==f&&f==g)
            putchar(51);
        else
            putchar(50);
    }
    else
        putchar(49);
    LF();
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2060B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2005,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,m,a[N][N],b[N][N],num[N],num2[N],cnt[N];
void sot(int l,int r)
{
    if(l==r)
        return ;
    int o=l+r>>1,u=l,v=o+1,w=l;
    sot(l,o);
    sot(o+1,r);
    while(u<=o&&v<=r)
        if(a[u][1]<=a[v][1])
        {
            for(int i=1;i<=m;i++)
                b[w][i]=a[u][i];
            num2[w++]=num[u++];
        }
        else
        {
            for(int i=1;i<=m;i++)
                b[w][i]=a[v][i];
            num2[w++]=num[v++];
        }
    while(u<=o)
    {
        for(int i=1;i<=m;i++)
            b[w][i]=a[u][i];
        num2[w++]=num[u++];
    }
    while(v<=r)
    {
        for(int i=1;i<=m;i++)
            b[w][i]=a[v][i];
        num2[w++]=num[v++];
    }
    for(;l<=r;l++)
    {
        for(int i=1;i<=m;i++)
            a[l][i]=b[l][i];
        num[l]=num2[l];
    }
}
void solve()
{
    read(n,m);
    for(int i=1;i<=n;i++)
    {
        cnt[i]=0;
        num[i]=i;
        for(int j=1;j<=m;j++)
        {
            read(a[i][j]);
            b[i][j]=0;
        }
        sort(a[i]+1,a[i]+1+m);
    }
    sot(1,n);
    int now=-1;
    for(int k=1;k<=m;k++)
    for(int i=1;i<=n;i++)
    {
        ++cnt[i];
        if(a[i][cnt[i]]<=now)
        {
            puts("-1");
            return;
        }
        now=a[i][cnt[i]];
    } 
    for(int i=1;i<=n;i++)
    {
        write(num[i]);SP();
    }LF();
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2060C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,m,a[N],vis[N],f[N];
void solve()
{
    read(n,m);
    for(int i=1;i<=n;i++)
    {
        read(a[i]);
        vis[i]=false,f[i]=i;
    }
    sort(a+1,a+1+n);
    int ans=0;
    for(int i=1;i<n;i++)
    {
        if(vis[i])
            continue;
        if(a[i]<<1>m)
            break;
        int u=lower_bound(a+i+1,a+1+n,m-a[i])-a;
        while(vis[f[u]])
            f[u]++;
        if(a[f[u]]!=m-a[i]||f[u]<=i||f[u]>n)
            continue;
        vis[f[u]++]=true,ans++;
    }
    write(ans);
    LF();
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}
//1 1 2 3 3 3 4 5 5 5 6 7 8 9 9 9

CF2060D

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,a[N];
void solve()
{
    read(n);
    for(int i=1;i<=n;i++)
        read(a[i]);
    for(int i=1;i<n;i++)
    {
        if(a[i]==a[i+1])
            i++;
        else
        {
            if(a[i]<a[i+1])
                a[i+1]-=a[i];
            else
            {
                puts("NO");
                return;
            }
        }
    }
    puts("YES");
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2060E

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,m1,m2,f[2][N],u[N],v[N],x,y;
int Find(int p,int x)
{
    return x==f[p][x]?x:f[p][x]=Find(p,f[p][x]);
}
void merge(int p,int x,int y)
{
    int xx=Find(p,x),yy=Find(p,y);
    if(xx!=yy)
        f[p][xx]=yy;
}
void solve()
{
    read(n,m1,m2);
    for(int i=1;i<=n;i++)
    {
        f[0][i]=f[1][i]=i;
    }
    for(int i=1;i<=m1;i++)
        read(u[i],v[i]);
    for(int i=1;i<=m2;i++)
    {
        read(x,y);
        merge(1,x,y);
    }
    int ans=0;
    for(int i=1;i<=m1;i++)
    {
        x=u[i],y=v[i];
        if(Find(1,x)==Find(1,y))
            merge(0,x,y);
        else
            ans++;
    }
    for(int i=1;i<=n;i++)
    {
        x=Find(0,Find(1,i)),y=Find(0,i);
        if(x!=y)
        {
            ans++;
            merge(0,x,y);
        }
    }
    write(ans);LF();
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

Hello 2025

CF2057A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,m;
void solve()
{
    read(n,m);
    write(max(n,m)+1);
    LF();
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2057B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,m,a[N],vis[N];
void solve()
{
    read(n,m);
    for(int i=1;i<=n;i++)
        read(a[i]);
    sort(a+1,a+1+n);
    int cnt=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i]>a[i-1])
            vis[++cnt]=0;
        vis[cnt]++;
    }
    sort(vis+1,vis+1+cnt);
    int i=1;
    for(;i<cnt&&m-vis[i]>=0;i++)m-=vis[i];
    write(cnt-i+1);
    LF();
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2057C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
ll n,m;
bool a[2][35];
void work(ll u,int k)
{
    ll p=2147483648;
    int o=31;
    while(p)
    {
        if(u&p)
            a[k][o]=true;
        p>>=1,o--;
    }
}
void solve()
{
    memset(a,false,sizeof a);
    read(n,m);
    if(m-n==2)
    {
        write(n,n+1,m);
        LF();
        return;
    }
    work(n,0);
    work(m,1);
    bool flag=true;
    ll w=0,a_=0,b_=n,c_=0;
    for(int i=31;~i;i--)
    {
        if(flag&&a[0][i]==a[1][i])
        {
            if(a[0][i])
                w+=(ll)(1)<<i;
            continue;
        }
        flag=false;
        if(!a_&&a[1][i])
            a_=(ll)(1)<<i;
    }
    b_-=w;
    c_=((a_<<1)-1)^(a_^b_);
    if(c_+w<n||c_+w>m)
        c_=a_-1;
    if(b_==c_)
        c_=a_+1;
    write(a_+w,b_+w,c_+w);
    LF();
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

Codeforces Round 997 (Div. 2)

CF2056A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,m,x,y;
void solve()
{
    read(n,m);
    int xx=0,yy=0;
    read(x,y);
    for(int i=1;i<n;i++)
    {
        read(x,y);xx+=x,yy+=y;
    }
    write(xx+yy+(m<<1)<<1);LF();
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2056B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1005,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,ans[N],go[N];
char a[N][N];
void solve()
{
    queue<int> q;
    read(n);
    for(int i=0;i<=n;i++)
        go[i]=i,ans[i]=0;
    for(int i=1;i<=n;i++)
        scanf("%s",a[i]+1);
    for(int i=n;i;i--)
    {
        int cnt=0;
        for(int j=1;j<i;j++)
        {
            if(a[i][j]==49)
                cnt++;
        }
        for(int j=0;j<n;j++)
        {
            if(!ans[j])
                cnt--;
            if(cnt==-1)
            {
                ans[j]=i;
                break;
            }
        }
    }
    for(int i=0;i<n;i++)
    {
        write(ans[i]);SP();
    }LF();
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2056C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n;
void solve()
{
    read(n);
    if(n==6)
        puts("1 1 2 3 1 2");
    else if(n==7)
        puts("1 1 2 3 1 2 2");
    else if(n==8)
        puts("1 1 2 3 1 2 4 2");
    else if(n<24)
    {
        printf("1 2 2 1 3 2 1 1 2 ");
        int cnt=0,p=4;
        for(int i=0;i<n-9;i++)
        {
            cnt++;
            write(p);SP();
            if(cnt==5)
                cnt=0,p++;
        }
        LF();
    }
    else
    {
        printf("1 2 2 2 1 3 2 4 1 3 2 1 1 1 2 ");
        int cnt=0,p=5;
        for(int i=0;i<n-15;i++)
        {
            cnt++;
            write(p);SP();
            if(cnt==7)
                cnt=0,p++;
        }
        LF();
    }
}
int main()
{
//  freopen("wjts.in","r",stdin);
//  freopen("wjts.out","w",stdout);
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

Good Bye 2024: 2025 is NEAR

CF2053A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,a[N];
bool work()
{

    for(int i=1;i<n;i++)
        if((a[i]<<1)>a[i+1]&&(a[i+1]<<1)>a[i])
            return true;
    return false;
}
void solve()
{
    read(n);
    for(int i=1;i<=n;i++)
        read(a[i]);
    bool ans=work();
    if(ans)
        puts("YES");
    else
        puts("NO");
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2053B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,x[N],y[N],vis[N],sum[N];
void solve()
{
    read(n);
    for(int i=1;i<=n<<1;i++)
        vis[i]=sum[i]=0;
    for(int i=1;i<=n;i++)
    {
        read(x[i],y[i]);
        if(x[i]==y[i])
            vis[x[i]]++,sum[x[i]]=1;
    }
    for(int i=1;i<=n<<1;i++)
        sum[i]+=sum[i-1];
    for(int i=1;i<=n;i++)
    {
        int u=sum[y[i]]-sum[x[i]-1],v=y[i]-x[i]+1;
        if((x[i]==y[i]&&vis[x[i]]<2)||u<v)
            putchar(49);
        else
            putchar(48);
    }
    putchar(10);
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2053C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
ll n,k,ans;
void solve()
{
    ans=0;
    read(n,k);
    ll t=n,i=1;
    while(true)
    {
        if(t<k)
            break;
        if(t&1)
            ans+=i;
        t>>=1,i<<=1;
    } 
    write(ans*(1+n)>>1);
    LF();
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2053D

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
const ll mod=998244353;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,q;
ll x,y,a[N],b[N],c[N],d[N];
ll qp(ll a,ll b){
    ll res=1;
    while(b){
        if(b&1)
            res=res*a%mod;
        a=a*a%mod,b>>=1;
    }
    return res;
}
void solve()
{
    read(n,q);
    for(int i=1;i<=n;i++)
        read(a[i]);
    for(int i=1;i<=n;i++)
    {
        read(b[i]);
        c[i]=a[i],d[i]=b[i];
    }
    sort(c+1,c+1+n);
    sort(d+1,d+1+n);
    ll ans=1;
    for(int i=1;i<=n;i++)
        ans=ans*min(c[i],d[i])%mod;
    write(ans);
    while(q--)
    {
        SP();
        read(x,y);
        if(x==1)
        {
            int u=upper_bound(c+1,c+1+n,a[y])-c-1;
            c[u]++;
            if(d[u]>a[y])
                ans=(ans*qp(a[y],mod-2)%mod)*c[u]%mod;
            a[y]++;
        }
        else
        {
            int u=upper_bound(d+1,d+1+n,b[y])-d-1;
            d[u]++;
            if(c[u]>b[y])
                ans=(ans*qp(b[y],mod-2)%mod)*d[u]%mod;
            b[y]++;
        }
        write(ans);
    }
    LF();
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

Codeforces Round 994 (Div. 2)

CF2049A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N];
void solve()
{
    scanf("%d",&n);
    bool flag=false,ff=false,fr=false;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",a+i);
        if(a[i]&&flag&&fr)
            ff=true;
        if(!a[i]&&flag)
            fr=true;
        if(a[i])
            flag=true;
    }
    if(ff)
        puts("2");
    else if(flag)
        puts("1");
    else
        puts("0");
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2049B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
char s[N];
void solve()
{
    scanf("%d%s",&n,s+1);
    int l=0,r=n;
    while(s[l+1]=='s'||s[l+1]=='.')
        l++;
    while(s[l]=='.')
        l--;
    if(l<=1)
    {
        while(s[r]=='p'||s[r]=='.')
            r--;
        if(l>=r)
            puts("YES");
        else
            puts("NO");
    }
    else
    {
        while(s[l]=='s'||s[l]=='.')
            l++;
        if(l>=r)
            puts("YES");
        else
            puts("NO");
    }
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

CF2049C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,x,y;
void solve()
{
    scanf("%d%d%d",&n,&x,&y);
    if(n&1)
    {
        int z=0;
        for(int i=1;i<=n;i++)
        {
            if(i==x)
                putchar(50);
            else
            {
                putchar(z+48);
                z^=1;
            }
            putchar(32);
        }
    }
    else if(!(y-x&1))
    {
        int z=0;
        for(int i=1;i<=n;i++)
        {
            if(i==x)
                putchar(50);
            else
                putchar(z+48);
            putchar(32);
            z^=1;
        }
    }
    else
    {
        int z=0;
        for(int i=1;i<=n;i++)
        {
            putchar(48+z);
            z^=1;
            putchar(32);
        }
    }
    putchar(10); 
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

Rayan Programming Contest 2024 - Selection (Codeforces Round 989, Div. 1 + Div. 2)

CF2034A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m;
int gcd(int a,int b)
{
    int t=a%b;
    while(t)
        a=b,b=t,t=a%b;
    return b;
}
int lcm(int a,int b){return a*b/gcd(a,b);}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        printf("%d\n",lcm(n,m));
    }
    return 0;
}

CF2034B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m,k;
char s[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d%d%s",&n,&m,&k,s+1);
        int t=0,ans=0,v=0;
        for(int i=1;i<=n;i++)
        {
            if(s[i]==48)
                if(!v)
                    t++;
            if(s[i]==49)
                t=0;
            if(t==m)
                ans++,t=0,v=k;
            if(v)
                v--;
        }
        printf("%d\n",ans);
    }
    return 0;
}

CF2034C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1005,INF=0x3f3f3f3f;
int n,m,f[N*N];
char s[N][N];
bool vis[N*N];
int Find(int x)
{
    return x==f[x]?x:f[x]=Find(f[x]);
}
void merge(int x,int y)
{
    int xx=Find(x),yy=Find(y);
    if(xx!=yy)
        f[xx]=yy;
    else
        vis[xx]=true;
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%s",s[i]+1);
        for(int i=1;i<=m;i++)
            s[0][i]=s[n+1][i]=0;
        for(int i=1;i<=n;i++)
            s[i][0]=s[i][m+1]=0;
        for(int i=0;i<=n+1;i++)
            for(int j=0;j<=m+1;j++)
                f[i*(m+2)+j]=i*(m+2)+j,vis[i*(m+2)+j]=false;
        for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            int now=i*(m+2)+j;
            if(s[i][j]=='U')
                merge(now,(i-1)*(m+2)+j);
            else if(s[i][j]=='L')
                merge(now,i*(m+2)+j-1);
            else if(s[i][j]=='D')
                merge(now,(i+1)*(m+2)+j);
            else if(s[i][j]=='R')
                merge(now,i*(m+2)+j+1);
        }
        for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        if(s[i][j]=='?')
        {
            int now=i*(m+2)+j,a=Find((i-1)*(m+2)+j),b=Find(i*(m+2)+j-1),c=Find((i+1)*(m+2)+j),d=Find(i*(m+2)+j+1);
            if(a==now||b==now||c==now||d==now||vis[a]||vis[b]||vis[c]||vis[d]||s[a/(m+2)][a%(m+2)]||s[b/(m+2)][b%(m+2)]||s[c/(m+2)][c%(m+2)]||s[d/(m+2)][d%(m+2)])
                vis[now]=true;
        }
        int ans=0;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                if(vis[Find(i*(m+2)+j)])
                    ans++;
        printf("%d\n",ans);
    }
    return 0;
}

CodeTON Round 9 (Div. 1 + Div. 2, Rated, Prizes!)

CF2039A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            printf("%d ",(i<<1)-1);
        putchar(10);
    }
    return 0;
}

CF2039B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
string s;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        cin>>s;
        int n=s.length();
        bool flag=false;
        for(int i=0;i<n;i++)
        {
            if(i&&s[i]==s[i-1])
            {
                putchar(s[i]);
                putchar(s[i]);
                flag=true;
                break;
            }
            if(i>1&&s[i]!=s[i-2]&&s[i]!=s[i-1])
            {
                putchar(s[i-2]);
                putchar(s[i-1]);
                putchar(s[i]);
                flag=true;
                break;
            }
        }
        if(!flag)
        {
            putchar(45);
            putchar(49);
        }
        putchar(10);
    }
    return 0;
}

CF2039C1

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
ll m;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%lld",&n,&m);
        int ans=0;
        for(int i=1;i<=min(m,ll(n<<1));i++)
            if(i!=n&&(i%(n^i)==0||n%(n^i)==0))
                ans++;
        printf("%d\n",ans);
    }
    return 0;
}

CF2039C2

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
ll m;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%lld",&n,&m);
        if(n==1)
        {
            printf("%lld\n",m);
            continue;
        }
        if(n==2)
        {
            printf("%lld\n",(m>>1)+1);
            continue;
        }
        ll ans=m/n;
        ll v=ans*n;
        if((v^n)>m)
            ans--;
        while((v+n^n)<=m)
            ans++,v+=n;
        for(int i=1;i<=min(m,(ll)(n<<2));i++)
            if((n^i)%i==0&&(n^i)&n)
                ans++;
        printf("%lld\n",ans);
    }
    return 0;
}

CF2039D

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5,INF=0x3f3f3f3f;
int n,m,a[N],dep[N];
int main()
{
    int T;
    scanf("%d",&T);
    dep[1]=1;
    for(int i=2;i<N;i++)
        for(int j=1;j*j<=i;j++)
            if(i%j==0)
                dep[i]=max(dep[i],max(dep[j]+1,dep[i/j]+1));
    while(T--)
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++)
            scanf("%d",a+i);
        sort(a+1,a+1+m,greater<int>());
        int maxi=1;
        for(int i=1;i<=n;i++)
            maxi=max(maxi,dep[i]);
        if(m<maxi)
            puts("-1");
        else
        {
            for(int i=1;i<=n;i++)
                printf("%d ",a[dep[i]]);
            putchar(10);
        }
    }
    return 0;
}

Codeforces Round 984 (Div. 3)

CF2036A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        bool flag=true;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",a+i);
            int x=abs(a[i]-a[i-1]);
            if(i>1&&x!=5&&x!=7)
                flag=false;
        }
        if(flag)
            puts("YES");
        else puts("NO");
    }
    return 0;
}

CF2036B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,k,b[N],c[N],vis[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&k);
        for(int i=1;i<=k;i++)
            vis[i]=0;
        for(int i=1;i<=k;i++)
        {
            scanf("%d%d",b+i,c+i);
            vis[b[i]]+=c[i];
        }
        sort(vis+1,vis+1+k,greater<int>());
        ll ans=0;
        for(int i=1;i<=min(n,k);i++)
            ans+=vis[i];
        printf("%lld\n",ans);
    }
    return 0;
}

CF2036C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int q,n,m,p;
bool vis[N];
char a[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%s%d",a+1,&q);
        n=strlen(a+1);
        int cnt=0;
        for(int i=1;i<=n;i++)
            vis[i]=false;
        for(int i=4;i<=n;i++)
        {
            if(a[i]==48&&a[i-1]==48&&a[i-2]==49&&a[i-3]==49)
                vis[i]=true,cnt++;;
        }
        while(q--)
        {
            scanf("%d%d",&m,&p);
            if(a[m]!=p+48)
            {
                if(p)
                {
                    a[m]=49;
                    if(vis[m])
                        vis[m]=false,cnt--;
                    if(m+1<=n&&vis[m+1])
                        vis[m+1]=false,cnt--;
                    if(m+2<=n&&m>1&&a[m-1]==49&&a[m+1]==48&&a[m+2]==48)
                        vis[m+2]=true,cnt++;
                    if(m+3<=n&&a[m+1]==49&&a[m+2]==48&&a[m+3]==48)
                        vis[m+3]=true,cnt++;
                }
                else
                {
                    a[m]=48;
                    if(m>3&&a[m-3]==49&&a[m-2]==49&&a[m-1]==48)
                        vis[m]=true,cnt++;
                    if(m+1<=n&&n>2&&vis[m+1]==0&&a[m-1]==49&&a[m-2]==49&&a[m+1]==48)
                        vis[m+1]=true,cnt++;
                    if(m+2<=n&&vis[m+2])
                        vis[m+2]=false,cnt--;
                    if(m+3<=n&&vis[m+3])
                        vis[m+3]=false,cnt--;
                }
            }
            if(cnt)puts("YES");
            else puts("NO");
        }
    }
    return 0;
}

CF2036D

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1005,INF=0x3f3f3f3f;
int n,m,p[N>>1][N<<4],cnt[N>>1];
char a[N][N];
void fun(int u,int lx,int rx,int ly,int ry)
{
    int c=0;
    for(int i=ly;i<=ry;i++)
        p[u][++c]=a[lx][i]-48;
    for(int i=lx+1;i<=rx;i++)
        p[u][++c]=a[i][ry]-48;
    for(int i=ry-1;i>=ly;i--)
        p[u][++c]=a[rx][i]-48;
    for(int i=rx-1;i>lx;i--)
        p[u][++c]=a[i][ly]-48;
    for(int i=c+1;i<min(c+4,c<<1);i++)
        p[u][i]=p[u][i-c];
    cnt[u]=min(c+3,(c<<1)-1);
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%s",a[i]+1);
        int q=min(n,m)>>1;
        for(int i=1;i<=q;i++)
            fun(i,i,n-i+1,i,m-i+1);
        int ans=0;
        for(int i=1;i<=q;i++)
            for(int j=1;j<cnt[i]-2;j++)
                if(p[i][j]==1&&p[i][j+1]==5&&p[i][j+2]==4&&p[i][j+3]==3)
                    ans++;
        printf("%d\n",ans);
    }
    return 0;
}

Codeforces Round 979 (Div. 2)

CF2030A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        int minn=N,maxn=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",a+i);
            maxn=max(maxn,a[i]),minn=min(minn,a[i]);
        }
        printf("%d\n",(maxn-minn)*(n-1));
    }
    return 0;
}

CF2030B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<n;i++)
            putchar(48);
        puts("1");
    }
    return 0;
}

CF2030C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
char s[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%s",&n,s+1);
        bool t=false,F=false;
        if(s[1]==49||s[n]==49)
            F=true;
        for(int i=1;!F&&i<=n;i++)
        {
            if(s[i]==49)
            {
                if(t)
                    F=true;
                else
                    t=true;
            }
            else
                t=false;
        }
        if(F)
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}

Codeforces Round 982 (Div. 2)

CF2027A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        int a=0,b=0;
        for(int i=1;i<=n;i++)
        {
            int x,y;
            scanf("%d%d",&x,&y);
            a=max(a,x),b=max(b,y);
        }
        printf("%d\n",a+b<<1);
    }
    return 0;
}

CF2027B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N],b[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        int ans=INF;
        for(int i=1;i<=n;i++)
            scanf("%d",a+i);
        for(int i=1;i<=n;i++)
        {
            int cnt=0;
            for(int j=1;j<i;j++)
                if(a[i]!=a[j])cnt++;
            for(int j=i+1;j<=n;j++)
                if(a[i]<a[j])cnt++;
            ans=min(ans,cnt);
        }
        printf("%d\n",ans);
    }
    return 0;
}

CF2027C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
ll a[N];
pair<ll,ll> siz[N];
map<ll,bool> p;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%lld",a+i);
            siz[i].first=a[i]+(i-1<<1),siz[i].second=n-i+1;
        }
        sort(siz+1,siz+1+n);
        p.clear();
        p[n]=true;
        for(int i=1;i<=n;i++)
            if(p[siz[i].first-(n-siz[i].second)])
                p[siz[i].first]=true;
        map<ll,bool>::iterator it=p.end();
        it--;
        while(!it->second)
            it--;
        printf("%lld\n",it->first);
    }
    return 0;
}

Codeforces Round 974 (Div. 3)

CF2014A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m,a[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        int sum=0,ans=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",a+i);
            if(a[i]>=m)sum+=a[i];
            if(a[i]==0&&sum)sum--,ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}

CF2014B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,k;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&k);
        k%=4;
        n&=1;int ans=0;
        for(int i=0;i<k;i++)ans+=n++;
        if(ans&1)puts("NO");
        else puts("YES");
    }
    return 0;
}

CF2014C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        ll sum=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",a+i);
            sum=sum+a[i];
        }
        if(n<3)
        {
            puts("-1");continue;
        }
        sort(a+1,a+1+n);
        ll v=(ll)a[n+2>>1]*n<<1;
        if(sum>v)
            puts("0");
        else
            printf("%lld\n",v-sum+1);
    }
    return 0;
}

CF2014D

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        ll sum=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",a+i);
            sum=sum+a[i];
        }
        if(n<3)
        {
            puts("-1");continue;
        }
        sort(a+1,a+1+n);
        ll u=a[n+2>>1];
        ll v=u*2*n;
        if(sum>v)
            puts("0");
        else
            printf("%lld\n",v-sum+1);
    }
    return 0;
}

Codeforces Round 972 (Div. 2)

CF2005A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
char s[5]={'a','e','i','o','u'};
int n;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        if(n<6)
            for(int i=0;i<n;i++)
                putchar(s[i]);
        else
        {
            int t=n/5;
            n-=t;
            for(int i=0;i<t;i++)
                putchar(97);
            t=n/4,n-=t;
            for(int i=0;i<t;i++)
                putchar(s[1]);
            t=n/3,n-=t;
            for(int i=0;i<t;i++)
                putchar(s[2]);
            t=n/2,n-=t;
            for(int i=0;i<t;i++)
                putchar(s[3]);
            t=n;
            for(int i=0;i<t;i++)
                putchar(s[4]);
        }
        putchar('\n');
    }
    return 0;
}

CF2005B1

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m,q,a[N],x;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d%d",&n,&m,&q);
        for(int i=1;i<=m;i++)
            scanf("%d",a+i);
        sort(a+1,a+1+m);
        while(q--)
        {
            scanf("%d",&x);
            int j=-1;
            for(int i=1;i<=m;i++)
            if(a[i]>=x)
            {
                j=i;
                break;
            }
            if(a[j]==x)
            {
                putchar(48);putchar(10);
                continue;
            }
            if(j==1)
            {
                printf("%d\n",a[j]-1);
                continue;
            }
            if(j==-1)
            {
                printf("%d\n",n-a[m]);
                continue;
            }
            printf("%d\n",a[j]-a[j-1]>>1);
        }
    }
    return 0;
}

CF2005B2

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m,q;
ll a[N],x;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%lld%d%d",&n,&m,&q);
        set<ll> s;
        for(int i=1;i<=m;i++)
        {
            scanf("%lld",a+i);
            s.insert(a[i]);
        }
        m=0;
        for(set<ll>::iterator it=s.begin();it!=s.end();it++)
            a[++m]=(*it);
        while(q--)
        {
            scanf("%lld",&x);
            int j=upper_bound(a+1,a+1+m,x)-a;
            if(a[j-1]==x)
            {
                putchar(48);putchar(10);
                continue;
            }
            if(j==1)
            {
                printf("%lld\n",a[j]-1);
                continue;
            }
            if(j==m+1)
            {
                printf("%lld\n",n-a[m]);
                continue;
            }
            printf("%lld\n",a[j]-a[j-1]>>1);
        }
    }
    return 0;
}

Educational Codeforces Round 169 (Rated for Div. 2)

CF2004A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,x[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",x+i);
        if(n<2||n==2&&abs(x[1]-x[2])>1)
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}

CF2004B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int l,r,x,y;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d%d%d",&l,&r,&x,&y);
        if(r<x||y<l)
            puts("1");
        else
        {
            int ans=min(r,y)-max(l,x);
            if(min(l,x)<max(l,x))
                ans++;
            if(max(r,y)>min(r,y))
                ans++;
            printf("%d\n",ans);
        }
    }
    return 0;
}

CF2004C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
ll m,a[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%lld",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%lld",a+i);
        sort(a+1,a+1+n);
        ll sum=0;
        for(int i=n;i>1;i-=2)
            if(m+a[i-1]<a[i])
                sum+=a[i]-m-a[i-1],m=0;
            else
                m-=a[i]-a[i-1];
        ll d=0;
        if(n&1)
            d=a[1];
        printf("%lld\n",sum+d);
    }
    return 0;
}

Codeforces Round 968 (Div. 2)

CF2003A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
char s[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%s",&n,&s);
        if(s[0]!=s[n-1])
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}

CF2003B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",a+i);
        sort(a+1,a+1+n);
        printf("%d\n",a[n+2>>1]);
    }
    return 0;
}

CF2003C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[26];
char s[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%s",&n,s);
        for(int i=0;i<n;i++)
            a[s[i]-97]++;
        bool flag=true;
        while(flag)
        {
            flag=false;
            for(int i=0;i<26;i++)
            {
                if(a[i])
                {
                    putchar(i+97);
                    a[i]--,flag=true;
                }
            }
        }putchar(10);
    }
    return 0;
}

CF2003D1

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
ll u[N],v[N],m;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        set<ll> q;
        ll maxn=0,ans=0;
        scanf("%d%lld",&n,&m);
        for(int i=1;i<=n;i++)
        {
            int len;u[i]=v[i]=-1;
            scanf("%d",&len);
            for(int j=0;j<len;j++)
            {
                ll y;
                scanf("%lld",&y);
                q.insert(y);
            }
            set<ll> ::iterator it=q.begin();
            ll pre=0;
            for(;it!=q.end();it++)
            {
                if(*it!=pre)
                {
                    u[i]=pre++;
                    break;
                }
                pre++;
            }
            if(u[i]==-1)
                u[i]=pre++;
            for(;it!=q.end();it++)
            {
                if(*it!=pre)
                {
                    v[i]=pre++;
                    break;
                }
                pre++;
            }
            if(v[i]==-1)
                v[i]=pre++;
            maxn=max(maxn,v[i]);
            q.clear();
        }
        if(maxn<m)
            ans=maxn*maxn+((maxn+m)*(m-maxn+1)>>1);
        else
            ans=maxn*(m+1);
        printf("%lld\n",ans);
    }
    return 0;
}

Codeforces Round 966 (Div. 3)

CF2000A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
char s[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%s",s);
        if((strlen(s)>3||strlen(s)==3&&s[2]>49)&&s[2]>'0'&&s[0]=='1'&&s[1]=='0')
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}

CF2000B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N];
bool vis[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        memset(vis,false,sizeof vis);
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",a+i);
        bool flag=false;
        vis[a[1]]=true;
        for(int i=2;i<=n;i++)
        {
            if(vis[a[i]-1]==false&&vis[a[i]+1]==false)
                flag=true;
            vis[a[i]]=true;
        }
        if(flag)
            puts("NO");
        else
            puts("YES");
    }
    return 0;
}

CF2000C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+5,INF=0x3f3f3f3f;
int n,m,a[N],aa[N],bi[27];
bool vis[N];
string s;
vector<int> G[27];
set<int> se;
map<int,int> p;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        memset(vis,false,sizeof vis);
        memset(bi,0,sizeof bi);
        scanf("%d",&n);
        s.clear(),se.clear(),p.clear();
        int idx=1;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",a+i);
            se.insert(a[i]);
        }
        for(set<int>::iterator it=se.begin();it!=se.end();it++)
            p[*it]=idx++;
        for(int i=1;i<=n;i++)
            a[i]=p[a[i]];
        idx=1;
        for(int i=1;i<=n;i++)
        {
            if(!bi[a[i]])
                bi[a[i]]=idx++;
            a[i]=bi[a[i]];
        }
        scanf("%d",&m);
        for(int i=0;i<26;i++)
            G[i].clear();
        for(int i=1;i<=m;i++)
        {
            cin>>s;
            memset(bi,0,sizeof bi);
            if(s.size()!=n||se.size()>26)
            {
                puts("NO");
                continue;
            }
            idx=1;
            for(int j=0;j<n;j++)
            {
                if(!bi[s[j]-96])
                    bi[s[j]-96]=idx++;
                aa[j+1]=bi[s[j]-96];
            }
            bool flag=false;
            for(int j=1;j<=n;j++)
            {
                if(a[j]!=aa[j])
                    flag=true;
            }
            if(flag)
                puts("NO");
            else
                puts("YES");
        }
    }
    return 0;
}

CF2000D

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
ll a[N],sum[N];
char s[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        ll ans=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%lld",a+i);
            sum[i]=sum[i-1]+a[i];
        }
        scanf("%s",s+1);
        int l=1,r=n;
        for(;l<r;)
        {
            while(l<r&&s[l]!='L')
                l++;
            while(l<r&&s[r]=='L')
                r--;
            if(l<r)
                ans+=sum[r--]-sum[l-1],l++;
        }
        printf("%lld\n",ans);
    }
    return 0;
}

CF2000E

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m,k,w;
ll a[N],b[N];
vector<ll> v[N];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d%d%d",&n,&m,&k,&w);
        for(int i=0;i<n;i++)
            v[i].clear();
        for(int i=1;i<=w;i++)
            scanf("%lld",a+i);
        sort(a+1,a+1+w);
        int heng=m-k+1,shu=n-k+1,maxn;
        for(int i=0;i<heng;i++)
            if(i<k)
                v[0].push_back(i+1),maxn=i+1;
            else
                v[0].push_back(k);
        for(int i=heng;i<m;i++)
            v[0].push_back(min(m-i,maxn));
        maxn=1;
        for(int i=1;i<shu;i++)
            if(i<k)
                v[i].push_back(i+1),maxn=i+1;
            else
                v[i].push_back(k);
        for(int i=shu;i<n;i++)
            v[i].push_back(min(n-i,maxn));
        for(int i=1;i<n;i++)
            for(int j=1;j<m;j++)
                v[i].push_back(v[0][j]*v[i][0]);
        int idx=0;
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                b[++idx]=v[i][j];
        sort(b+1,b+1+idx);
        ll ans=0;
        for(int i=w,j=idx;i;i--,j--)
            ans+=a[i]*b[j];
        printf("%lld\n",ans);
    }
    return 0;
}

Codeforces Round 959 sponsored by NEAR (Div. 1 + Div. 2)

CF1994A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=15,INF=0x3f3f3f3f;
int n,m,a[N][N],b[N][N],vis[N*N];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                scanf("%d",a[i]+j);
        if(n==1&&m==1)
        {
            puts("-1");
            continue;
        }
        b[1][1]=a[n][m];
        int c=a[1][1];
        for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            if(i==1&&j==1)
                continue;
            b[i][j]=c,c=a[i][j];
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
                printf("%d ",b[i][j]);
            putchar(10);
        }
    }
    return 0;
}

CF1994B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n;
char s[N],b[N];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%s%s",&n,s+1,b+1);
        bool flag=true;
        for(int i=1;i<=n;i++)
        {
            if(s[i]==49)
                break;
            if(s[i]==48&&s[i]!=b[i])
            {
                flag=false;
                break;
            }
        }
        if(flag)
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}

CF1994C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
void LF(){putchar(10);}
void SP(){putchar(32);}
template<typename T>void read(T& x)
{
    x=0;char ch=getchar();ll f=1;while(ch<48||ch>57){if(ch==45)f=-1;ch=getchar();}
    while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch&15),ch=getchar();x*=f;
}
template<typename T,typename... Args>void read(T& x,Args&... args){read(x);read(args...);}
template<typename T>void write(T x)
{
    if(x<0){putchar(45);x=-x;}
    if(x>9)write(x/10);
    putchar(x%10|48);
}
template<typename T,typename... Ts>void write(T x,Ts... args){write(x);if(sizeof...(args)!=0){SP();write(args...);}}
int n,a[N];
ll x,sum[N],f[N];
bool check(int u,int v)
{
    if(sum[v]-sum[u-1]>x)
        return false;
    return true;
}
int work(int u)
{
    int l=u,r=n;
    while(l<=r)
    {
        int o=l+r>>1;
        if(check(u,o))
            l=o+1;
        else
            r=o-1;
    }
    return l;
}
void solve()
{
    read(n,x);
    for(int i=1;i<=n;i++)
    {
        f[i]=0;
        read(a[i]);
        sum[i]=sum[i-1]+a[i];
    }
    f[n+1]=f[n+2]=0;
    for(int i=n;i;i--)
    {
        int u=work(i);
        f[i]=u-i+f[u+1];
    }
    ll ans=0;
    for(int i=1;i<=n;i++)
        ans+=f[i];
    write(ans);
    LF();
}
int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
        solve();
    return 0;
}

Codeforces Round 957 (Div. 3)

CF1992A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int a,b,c;
priority_queue<int,vector<int>,greater<int> > q;
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d",&a,&b,&c);
        q.push(a),q.push(b),q.push(c);
        int u=5;
        while(u--)
        {
            int t=q.top();
            q.pop();
            q.push(++t);
        }
        int ans=1;
        while(q.size())
        {
            ans*=q.top();
            q.pop();
        }
        printf("%d\n",ans);
    }
    return 0;
}

CF1992B


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,k;
ll a[N];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&k);
        ll maxn=0;
        for(int i=1;i<=k;i++)
        {
            scanf("%lld",a+i);
            if(a[i]>maxn)
                swap(a[i],maxn);
        }
        ll ans=0;
        for(int i=1;i<=k;i++)
            if(a[i])
                ans+=a[i]*2-1;
        printf("%lld\n",ans);
    }
    return 0;
}

CF1992C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m,k;
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d",&n,&m,&k);
        for(int i=n;i>m;i--)
            printf("%d ",i);
        for(int i=1;i<=m;i++)
            printf("%d ",i);
        putchar('\n');
    }
    return 0;
}

CF1992D

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m,k;
char s[N];
bool check()
{
    int c=0,w=0;
    for(int i=1;i<=n;i++)
    {
        if(s[i]=='C')
            c+=w+1,w=0;
        else if(s[i]=='W')
            w++;
        else
        {
            if(c+w>m)
                k-=c+w-m;
            w=c=0;
        }
        if(c>m||k<0)
            return false;
    }
    return true;
}
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d%s",&n,&m,&k,s+1);
        m--,s[++n]='L';
        if(check())
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}

CodeTON Round 8 (Div. 1 + Div. 2, Rated, Prizes!)

CF1942A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,m;
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&m);
        if(m==1){
            for(int i=1;i<=n;i++)
                printf("%d ",i);
            putchar(10);
        }
        else if(m==n){
            for(int i=1;i<=n;i++)
                printf("1 ");
            putchar(10);
        }
        else
            puts("-1");
    }
    return 0;
}

CF1942B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,a[N],vis[N];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            vis[i-1]=false;
            scanf("%d",a+i);
        }
        int minn=0;
        for(int i=1;i<=n;i++){
            if(a[i]>0){
                vis[minn]=true;
                printf("%d ",minn);
            }
            if(a[i]<0){
                vis[minn-a[i]]=true;
                printf("%d ",minn-a[i]);
            }
            while(vis[minn])
                minn++;
        }
        putchar('\n');
    }
    return 0;
}

CF1942C1

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5,INF=0x3f3f3f3f;
int n,x,y,a[N];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d",&n,&x,&y);
        for(int i=1;i<=x;i++){
            scanf("%d",a+i);
        }
        int sum=x-2;
        sort(a+1,a+1+x);
        for(int i=2;i<=x;i++)
            if(a[i]-a[i-1]==2)
                sum++;
        if(a[1]+n-a[x]==2)
            sum++;
        printf("%d\n",sum);
    }
    return 0;
}

CF1942C2

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5;
int n,x,y,a[N],b[N];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d",&n,&x,&y);
        for(int i=1;i<=x;i++)
            scanf("%d",a+i);
        int sum=x-2;
        sort(a+1,a+1+x);
        b[1]=a[1]+n-a[x]-1;
        for(int i=2;i<=x;i++)
            b[i]=a[i]-a[i-1]-1;
        sort(b+1,b+1+x);
        for(int i=1;i<=x;i++)
            if(b[i]==1)
                sum++;
        for(int i=1;i<=x&&y;i++)
            if(b[i]>1&&(b[i]&1)){
                int p=b[i]>>1;
                if(p<=y)
                    y-=p,sum+=2*p+1;
                else
                    sum+=y*2,y=0;
            }
        for(int i=1;i<=x&&y;i++)
            if(b[i]&&(!(b[i]&1))){
                int p=b[i]>>1;
                if(p<=y)
                    y-=p,sum+=2*p;
                else
                    sum+=y*2,y=0;
            }
        printf("%d\n",sum);
    }
    return 0;
}