Monday, September 7, 2015

488B - Candy Boxes (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define sc(n) scanf("%d", &n)
#define sf scanf
#define pf printf
#define MX 100005
typedef long long ll;
float arr[10];

bool check(float a, float b, float c, float d)
{
    arr[0] = a, arr[1] = b, arr[2]= c, arr[3] = d;
    sort(arr, arr+4);
    a = arr[0], b = arr[1], c = arr[2], d = arr[3];

    float am, median, range;
    am = (a+b+c+d)/4;
    median = (b+c)/2;
    range = d-a;

    if(am==median && median==range)
        return true;
    else
        return false;
}

int main()
{
    //freopen("in.txt","r",stdin);
    int n, i, j, k, lost, flag=0;
    float x1, x2, x3, x4;
    cin >> n;
    lost = 4-n;
    if(lost==0)
    {
        cin >> x1 >> x2 >> x3 >> x4;
        if(check(x1, x2, x3, x4))
            cout << "YES" << endl;
        else
            cout << "NO" << endl;
    }
    else if(lost==1)
    {
        cin >> x1 >> x2 >> x3;
        for(i=1; i<=1500; i++)
        {
            if(check(x1, x2, x3, i))
               x4 = i, flag=1;
        }
        if(flag==1)
            cout << "YES" << endl <<  x4 << endl;
        else
            cout << "NO" << endl;
    }
    else if(lost==2)
    {
        cin >> x1 >> x2;
        for(i=1; i<=1500; i++)
        {
            for(j=1; j<=1500; j++)
            {
                if(check(x1, x2, i, j))
                    x3 =i , x4 = j, flag=1; continue;
            }
        }
        if(flag==1)
            cout << "YES" << endl << x3 << endl << x4 << endl;
        else
            cout << "NO" << endl;
    }
    else if(lost==3)
    {
        cin >> x1;
        x2 = x1, x3 =3*x1 , x4 = x3;
        if(check(x1, x2, x3, x4))
            cout << "YES" << endl << x2 << endl << x3 << endl << x4 << endl;
        else
            cout << "NO" << endl;
    }
    else if(lost==4)
    {
        cout << "YES" << endl << "1" << endl << "1" << endl;
        cout << "3" << endl << "3" << endl;
    }
    return 0;
}



492B - Vanya and Lanterns (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define sc(n) scanf("%d", &n)
#define sf scanf
#define pf printf
#define MX 10005
typedef long long ll;
double a[MX];

int main()
{
    //freopen("in.txt","r",stdin);
    int i, n, l;
    double ans1, ans2, d, mx;
    cin >> n >> l;
    for(i=0; i<n; i++)
        cin >> a[i];
    sort(a, a+n);
    ans1 = max(a[0]-0, l-a[n-1]);
    mx =0;
    for(i=1; i<n; i++)
    {
        d = (a[i]-a[i-1])/2;
        if(d>mx)
            mx = d;
    }
    ans2 = max(ans1, mx);
    pf("%.10f\n", ans2);
    return 0;
}


Sunday, September 6, 2015

459B - Pashmak and Flowers (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define sc(n) scanf("%d", &n)
#define sf scanf
#define pf printf
#define MX 1000005
typedef long long ll;
ll a[MX];

int main()
{
    int n, i;
    ll ans1, ans2, cnt1, cnt2;
    while(sc(n)==1)
    {
        for(i=0; i<n; i++)
            scanf("%lld", &a[i]);
        sort(a, a+n);
        cnt1 = cnt2= 0;
        for(i=0; i<n; i++)
        {
            ans1 = a[n-1] - a[0];
            if(a[0]==a[i])
                cnt1++;
            if(a[n-1]==a[i])
                cnt2++;
        }
        if(cnt1==n)
            ans2 = (cnt1*(cnt1-1))/2;
        else
            ans2 = (cnt1*cnt2);
        cout << ans1 << " " << ans2 << endl;
    }
    return 0;
}

460B - Little Dima and Equation (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define pf printf
#define MX 10005
const double eps = 1e-9;
typedef long long int ll;
ll arr[MX];

int main()
{
    ll a, b, c, x;
    ll temp, i, j=0, sum, temp2;
    cin >>a >> b >> c;
    for(i=1; i<83; i++)
    {
        x = i;
        temp = 0;
        temp = (b*pow(x, a)) + c + eps;

        if(temp>1000000000)
            continue;

        sum = 0;
        temp2 = temp;
        while(temp2!=0)
        {
            sum += temp2%10;
            temp2 /= 10;
        }
        if(sum==x)
            arr[j++] = temp;
    }

    cout << j << endl;
    for(int i=0; i<j ;i++)
        cout << arr[i] << " ";

    return 0;
}


462B - Appleman and Card Game (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
#define sc(n) scanf("%d", &n)
#define sf scanf
#define pf printf
#define MX 100005
typedef long long ll;
int f[MX];

int main()
{
    string s;
    int n, k;
    while(scanf("%d%d", &n, &k)==2)
    {
        cin >> s;

        memset(f, 0, sizeof(f));
        for(int i=0; i<n; i++)
            f[s[i]-'A']++;

        sort(f, f+26);
        reverse(f, f+26);
        ll sum =0;
        for(int i=0; i<26; i++)
        {
            if(f[i]==0)
                break;
            if(k==0)
                break;
            if(f[i]>=k)
            {
                ll tmp = k;
                sum+=(tmp*tmp);
                break;
            }
            else
            {
                ll tmp = f[i];
                sum+=(tmp*tmp);
                k-=f[i];
            }
        }
        cout << sum << endl;
    }
    return 0;
}


463B - Caisa and Pylons (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define sc(n) scanf("%d", &n)
#define sf scanf
#define pf printf
#define MX 100005
typedef long long ll;
int a[MX];

int main()
{
    int  i, n;
    int paid, e;
    while(sc(n)==1)
    {
        e = 0;
        paid = 0;
        a[0] = 0;
        for(i=1; i<=n; i++)
            sc(a[i]);
        for(int i=0; i<n;i++)
        {
            e += (a[i] - a[i+1]);
            if(e<0)
                paid += -e , e = 0;
        }
        pf("%d\n", paid);
    }
    return 0;
}

465B - Inbox (100500) (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define sc(n) scanf("%d", &n)
#define sf scanf
#define pf printf
#define MX 10005
typedef long long ll;
int a[MX];

int main()
{
    int i, n, cnt, Zcnt;
    while(sc(n)==1)
    {
        cnt = 0;
        Zcnt=0;
        for(i=0; i<n; i++)
        {
             sc(a[i]);
             if(a[i]==1)
                cnt++;
             else if(a[i]==0 && a[i-1]!=0)
                cnt++;
             else if(a[i]==0)
                Zcnt++;
        }
        if(a[n-1]==0 && Zcnt!=n)
            cnt--;
        pf("%d\n", cnt);
    }
    return 0;
}

Compare equality of two string in C

#include <stdio.h> #include<string.h> int main() {     char* country = "Bangladesh";     char* country2;     ...