Thursday, February 5, 2015

Solution of 507A. Amr and Music (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define pf printf
#define sf scanf
#define MAX 105
int a[MAX], b[MAX], print[MAX];

int main()
{
    int n, k, i, p;
    int sum, count;
    sf("%d%d", &n, &k);
    int j=1;
    for(i=1; i<=n; i++)
    {
        sf("%d", &a[i]);
        b[j] = a[i];
        j++;
    }
    sort(a, a+i);
    if(a[1]>k)
    {
        pf("0\n");
    }
    else
    {
        sum =0;
        count = 0;
        for(int i=1 ;i<=n; i++)
        {
            sum = sum + a[i];
            count ++;
            if(sum>=k)
            {
                if(sum==k)
                {
                    break;
                }
                else
                {
                    sum = sum - a[i];
                    count --;
                    break;
                }
            }
        }
        p = 1;
        for(int i=1; i<=count; i++)
        {
            for(int j=1; j<=n ;j++)
            {
                if(a[i]==b[j])
                {
                    print[p] = j;
                    b[j] = 0;
                    p++;
                }
            }
        }
        sort(print, print+p);
        pf("%d\n", count);
        for(p=1; p<=count; p++)
        {
            pf("%d ", print[p]);
        }
        pf("\n");
    }
}

Sunday, February 1, 2015

Solution of 1068. Sum ( Timus Online Judge )

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    int n, sum;
    scanf("%d", &n);
    sum = 0;
    if(n>0)
    {
        sum = (n*(n+1))/2;
    }
    else if(n<=0)
    {
        sum = ((n*(n-1))/2)*(-1);
        sum = sum + 1;
    }
    printf("%d\n", sum);
}

Solution of 6A. Triangle (Codeforces)

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
using namespace std;
#define pf printf
#define sc scanf
#define MAX 100
int arr[MAX];

int main()
{
    int i, j, k;
    int test, t;
    int arr[5];
    for(i=0; i<4; i++)
    {
        sc("%d",&arr[i]);
    }
    sort(arr, arr+4);
    if(arr[0]+arr[1]>arr[2] || arr[1]+arr[2]>arr[3])
    {
        printf("TRIANGLE\n");
    }
    else if(arr[0]+arr[1]==arr[2] || arr[1]+arr[2]==arr[3])
    {
        printf("SEGMENT\n");
    }
    else
    {
        printf("IMPOSSIBLE\n");
    }
}

Solution of 270A. Fancy Fence (CodeForces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define pf printf
#define sf scanf
typedef long long ll;

int main()
{
    int test, a;
    sf("%d", &test);
    while(test--)
    {
        sf("%d", &a);
        if( 360 % (180-a) ==0)
        {
            pf("YES\n");
        }
        else
        {
            pf("NO\n");
        }
    }
}

Saturday, January 3, 2015

Solution of 9861. Hotels Along the Croatian Coast, Problem code: HOTELS (SPOJ)

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int a[3000005];

int main()
{
    int i, l;
    long long n, m, sum, max_sum;

    while(scanf("%lld%lld",&n, &m)==2)
    {
        for(i=1; i<=n; i++)
        {
             scanf("%d", &a[i]);
        }
        l=1;
        max_sum = 0;
        sum = 0;
        for(i=1; i<=n; i++)
        {
            sum = sum + a[i];
            while(sum>m)
            {
                sum = sum - a[l];
                l++;
                if(max_sum<=sum && sum<=m)
                {
                    max_sum = sum;
                    break;
                }
            }
            if(max_sum<=sum && sum<=m)
            {
                max_sum = sum;
            }
        }
        printf("%lld\n", max_sum);
    }
}

Solution of 16184. Megatron and his rage, Problem code: CODFURY ( SPOJ )

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

#define MAX 50000
#define pf printf
#define sf scanf
typedef long long ll;
ll a[MAX];

int main()
{
    int i, l, test, start;
    ll sum, min_sum, st, max_st;
    ll A, B;
    scanf("%d", &test);

    while(test--)
    {
        sf("%lld%lld", &A, &B);
        for(i=1; i<=A; i++)
        {
             sf("%lld", &a[i]);
        }
        min_sum = 50000;
        start = 1;
        max_st = 0;
        st=0;
        sum = 0;
        for(i=1; i<=A; i++)
        {
            sum = sum + a[i];
            st = st + 1;
            if((max_st < st && sum <=B) || (max_st == st && min_sum > sum))
            {
                max_st = st;
                min_sum = sum;
            }
            while(sum>B)
            {
                sum = sum - a[start];
                st = st-1;
                start++;
            }
            if ((max_st < st && sum <=B) || (max_st == st && min_sum > sum))
            {
                max_st = st;
                min_sum = sum;
            }
        }
        pf("%lld %lld\n", min_sum, max_st);
    }
}


Solution of 10401. Aliens at the train, Problem code: ALIEN ( SPOJ )

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

#define MAX 10000005
#define pf printf
#define sf scanf
typedef long long ll;
ll a[MAX];

int main()
{
    int i, l, test, start;
    ll sum, min_sum, st, max_st;
    ll A, B;
    scanf("%d", &test);

    while(test--)
    {
        sf("%lld%lld", &A, &B);
        for(i=1; i<=A; i++)
        {
             sf("%lld", &a[i]);
        }
        min_sum = 1000005;
        start = 1;
        max_st = 0;
        st = 0 ;
        st=0;
        sum = 0;
        for(i=1; i<=A; i++)
        {
            sum = sum + a[i];
            st = st + 1;
            if((max_st < st && sum <=B) || (max_st == st && min_sum > sum))
            {
                max_st = st;
                min_sum = sum;
            }
            while(sum>B)
            {
                sum = sum - a[start];
                st = st-1;
                start++;
            }
            if ((max_st < st && sum <=B) || (max_st == st && min_sum > sum))
            {
                max_st = st;
                min_sum = sum;
            }
        }
        pf("%lld %lld\n", min_sum, max_st);
    }
}



Compare equality of two string in C

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