寒假限时训练(2)D、E、F

· · 个人记录

D - Plus One on the Subset

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int t,s[11111];
int main()
{
    int a;
    cin>>a;
    while(a--)
    {
        cin>>t;
        for(int i=0; i<t; i++)
            cin>>s[i];
            sort(s,s+t);
        printf("%d\n",s[t-1]-s[0]);
    }
}

E - Make AP

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int a,b,c;
        cin>>a>>b>>c;
        if((a+c)%(2*b)==0&&a+c>0||((2*b-c)%a==0&&2*b-c>0)||((2*b-a)%c==0&&2*b-a>0))
            puts("YES");
        else
            puts("NO");
    }
}

F - Division by Two and Permutation

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int w[11111],x[11111];
int main()
{
    int a,flag;
    cin>>a;
    while(a--)
    {
      memset(w,0,11111);
        flag=0;
        int s;
        cin>>s;
        for(int i=0; i<s; i++)
            cin>>x[i];
        for(int i=0; i<s; i++)
        {
            while(x[i]>s)
            {
                x[i]=x[i]/2;
            }
            while(w[x[i]]==1)
            {
                x[i]=x[i]/2;
            }
            if(x[i]==0)
            {
                flag=1;
                break;
            }
            else
                w[x[i]]=1;
        }
        if(!flag)
            printf("YES\n");
        else
            printf("NO\n");
    }
}