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);
    }
}



Solution of 1294 - Positive Negative Sign ( Light Oj )

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

int main()
{
    long long m, n, test, t, ans;
    scanf("%lld", &test);
    for(t=1; t<=test; t++)
    {
        scanf("%lld%lld", &n, &m);
        ans = (n*m)/2;
        printf("Case %lld: %lld\n", t, ans);
    }
}

Solution of 1000. A+B Problem ( Timus Online Judge )

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


int main()
{
    ll a, b;
    sf("%lld%lld", &a, &b);
    pf("%lld\n", a+b);
}

Solution of 1083. Factorials!!! ( Timus Online Judge )

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

int main()
{
    int n, len, i;
    ll ans=1;
    string s;
    cin >> n;
    cin >> s;
    len = s.length();
    for(i=n ; i>0 ; i =(i-len))
    {
        ans = (ans*i);
    }
    cout << ans << endl;
}


Solution of 1293. Eniya ( Timus Online Judge )

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


int main()
{
    int n, a, b;
    sf("%d%d%d", &n, &a, &b);
    pf("%d\n", (a*b*n*2));

}


Compare equality of two string in C

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