Saturday, March 28, 2015

10924 - Prime Words (UVa)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define MAX 1500
#define size 241
int prime[size];
int status[MAX];

void getPrime()
{
    int i, j, p;
    int n = MAX;
    int sq = int(sqrt(n));
    for(i=3; i<=sq; i+=2)
    {
        if(status[i]==0)
        {
            for(j=i*i; j<=n; j+=(i+i))
            {
                status[j]=1;
            }
        }
    }
    prime[1]=1;
    prime[2]=2;
    p=3;
    for(i=3; i<=n ; i+=2)
    {
        if(status[i] == 0)
        {
            prime[p++] = i;
        }
    }
}

int binarySearch(int val)
{
    int start = 0, end = size;
    while(start<=end)
    {
        int mid =(start+end)/2;
        if(prime[mid]==val)
            return mid;
        else if(val<prime[mid])
            end = mid-1;
        else
            start = mid+1;
    }
    return -1;
}

int main()
{
   getPrime();
   string s;
   int i, sum;
   while(cin >> s)
   {
       cin.ignore();
       int len = s.length();
       sum = 0;
       for(i=0; i<len; i++)
       {
           if(s[i]>='a' && s[i] <='z')
           {
               sum += (s[i]-'a')+1;
           }
           else
           {
               sum += (s[i]-'A')+27;
           }

       }
       if(binarySearch(sum)==-1)
       {
            printf("It is not a prime word.\n");
       }
       else
       {
            printf("It is a prime word.\n");
       }
   }
}

Tuesday, March 17, 2015

483A. Counterexample (Codeforces)

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

int main()
{
    ll a, b, c, l, r;
    cin >> l >> r;
    if(l%2!=0)
    {
        l+=1;
    }
    if(r-l<2)
    {
        cout <<"-1" << endl;
    }
    else
    {
        a = l;
        b = l+1;
        c = l+1+1;
        cout << a <<" "<< b <<" " << c << endl;
    }
    return 0;
}




496A. Minimum Difficulty (Codeforces)

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

int main()
{
    int n, i, j, k, max, min, sub;
    sf("%d", &n);
    for(i=1; i<=n; i++)
    {
        sf("%d", &a[i]);
    }
    min = 10000;
    for(k=2; k<n; k++)
    {
        j=1;
        for(i=1; i<k; i++)
        {
            b[j++] = a[i];
        }
        for(i=k+1; i<=n; i++)
        {
            b[j++] = a[i];
        }
        sub = 0;
        max = 0;
        for(j=1; j<n-1; j++)
        {
            sub = b[j+1] - b[j];
            if(sub>=max)
            {
                max = sub;
            }
        }
        if(max<=min)
        {
            min = max;
        }
        j=1;
        for(i=1; i<=n; i++)
        {
            b[j++] = a[i];
        }
    }
    pf("%d\n", min);

    return 0;
}

Monday, March 16, 2015

10235 - Simply Emirp

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define MAX 1000000
#define size 79000
#define pf printf
long long status[MAX];
int prime[size];


void getPrime()
{
    int i, j, p;
    long long n = MAX;
    int sq = sqrt(n);
    for(i=3 ; i<=sq; i+=2)
    {
        if(status[i]==0)
        {
            for(j=i*i; j<=n; j+=(i+i))
            {
                status[j]=1;
            }
        }
    }
    prime[1]=2;
    p=2;
    for(i=3 ; i<=n ; i+=2)
    {
        if(status[i] == 0)
        {
            prime[p++] = i;
        }
    }
}

int binarySearch(int val)
{
    int start = 0, end = size;
    while(start<=end)
    {
        int mid =(start+end)/2;
        if(prime[mid]==val)
            return mid;
        else if(val<prime[mid])
            end = mid-1;
        else
            start = mid+1;
    }
    return -1;
}

int rev(int num)
{
    int revPrime=0;
    while(num>0)
    {
        revPrime *=10;
        revPrime += num%10;
        num/=10;
    }
    return revPrime;
}

int main()
{
    int n, rev_n;
    getPrime();
    while(scanf("%d", &n)==1)
    {
        if(binarySearch(n)!=-1)
        {
            rev_n = rev(n);
            if(binarySearch(rev_n)!=-1 && n!=rev_n)
                pf("%d is emirp.\n", n);
            else
                pf("%d is prime.\n", n);
        }
        else
        {
           pf("%d is not prime.\n", n);
        }
    }
    return 0;
}

11417 - GCD (UVa)

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

int gcd(int a, int b)
{
    if(b==0) return a;
    return gcd(b, a%b);
}

int main()
{
    int n, i, j;
    int G;
    while(scanf("%d", &n)==1)
    {
        if(n==0) break;
        G=0;
        for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++)
        {
            G+=gcd(i,j);
        }
        printf("%d\n", G);
    }
}

11388 - GCD LCM (UVa)


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

int main()
{
    int t;
    int G, L;
    scanf("%d", &t);
    while(t--)
    {
      scanf("%d%d", &G, &L);
      if(L%G==0)
        printf("%d %d\n", G, L);
      else
        printf("-1\n");
    }
}



1014 - Ifter Party (LightOJ)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define MAX 1000005
#define pf printf
#define sf scanf
typedef long long ll;
ll a[MAX];

int main()
{
    ll p, l, sub;
    int test, t;
    sf("%d", &test);
    for(t=1; t<=test; t++)
    {
        sf("%lld%lld", &p, &l);
        sub = (p-l);
         pf("Case %d:", t);
        if(sub<=l)
        {
            pf(" impossible\n");
        }
        else
        {
            int k=1;
            int count = 0;
            int temp = sqrt(sub);
            for(int i=1; i<=temp; i++)
            {
                if(sub%i==0)
                {
                    ll div = (sub/i);
                    if(div>l)
                    {
                        a[k] = div;
                        k++;
                        count++;
                    }
                    if(i>l && div!=i )
                    {
                        a[k] = i;
                        k++;
                        count++;
                    }
                }
            }
            sort(a, a+k);
            for(int j=1; j<=count; j++)
            {
                pf(" %lld", a[j]);
            }
            pf("\n");
        }
    }
}

486A - Calculating Function (Codeforces)

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

int main()
{
    long long n;
    while(sf("%lld", &n)==1)
    if(n%2==0)
    {
        n= (n/2);
        pf("%lld\n", n);
    }
    else
    {
        n = ((n+1)/2)*(-1);
        pf("%lld\n", n);
    }
}

488A - Giga Tower (Codeforces)

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

int check(ll n)
{
    int count = 0;
    if(n<0)
    {
          n=-n;
    }
    while(n)
    {
        if(n%10==8)
        {
            count++;
        }
        n=n/10;
    }
    return count;
}

int main()
{
    ll a;
    int count, f;
    cin >> a;
    f=0;
    while(1)
    {
        a++;
        f++;
        count = check(a);
        if(count>=1)
        {
           break;
        }
    }
    cout<< f << endl;
}

492A. Vanya and Cubes (Codeforces)

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

int main()
{
    int n, sum , temp, count, i;
    sf("%d", &n);
    count = 0;
    sum = 0;
    temp = 0;
    for(i=1;;i++)
    {
        sum = sum + i;
        temp = sum + temp;
        if(temp>n)
        {
            break;
        }
        count++;
    }
    pf("%d\n", count);
}

495A. Digital Counter (Codeforces)

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

int main()
{
    int stick[11] = {2, 7, 2 , 3, 3, 4, 2, 5, 1 ,2};
    int n, x;
    cin >> n;
    int n1, n2;
    n1 = (n%10);
    n2 = (n/10);
    x = stick[n1]*stick[n2];
    cout << x << endl;
}

499A - Watching a movie (Codeforces)

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

int main()
{
    int t = 0;
    int l, r, n, m, x;
    sf("%d%d", &n, &x);
    int sum ;
    int temp =0;
    for(int i=1; i<=n; i++)
    {
        sf("%d%d", &l, &r);
        sum = 0;
        while(1)
        {
             t = t+x;
             if(t>=l)
             {
                 t = (t-x);
                 sum = sum + (r-t);
                 t = t+sum;
                 break;
             }
        }
        temp = temp +sum;
    }
    pf("%d\n", temp);
}

501A. Contest (Codeforces)

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

int maxFunc(int a, int b)
{
    int A1= (3*a)/10;
    int A2 = a - ((a*b)/250);
    return max(A1, A2);
}

int main()
{
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    int M = maxFunc(a, c);
    int V = maxFunc(b, d);
    if(M>V)
    {
        pf("Misha\n");
    }
    else if(V>M)
    {
        pf("Vasya");
    }
    else
    {
        pf("Tie\n");
    }
}

Solution of 508A. Pasha and Pixels (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define pf printf
#define sf scanf
#define MAX 1005

int sq[MAX][MAX];

int main()
{
    int n, m, k;
    int i, j, t, temp;
    sf("%d%d%d", &n, &m, &k);
    temp =0;
    for(t=1; t<=k; t++)
    {
        sf("%d%d", &i, &j);
        sq[i][j] = 1;
        if(!temp)
        {
            if(sq[i][j+1]==1 && sq[i+1][j] ==1 && sq[i+1][j+1]==1)
            {
                temp = t;
            }
            else if(sq[i][j+1]==1 && sq[i-1][j]==1 && sq[i-1][j+1]==1)
            {
                temp = t;
            }
            else if(sq[i][j-1]==1 && sq[i-1][j]==1 && sq[i-1][j-1]==1)
            {
                temp = t;
            }
            else if(sq[i][j-1]==1 && sq[i+1][j-1]==1 && sq[i+1][j]==1)
            {
                temp = t;
            }
        }
        else
        {
            break;
        }
    }
    pf("%d\n", temp);
}

Solution of 478A. Initial Bet (Codeforces)

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

int main()
{
    int a, b, c, d, e, sum=0;
    scanf("%d%d%d%d%d", &a, &b, &c, &d, &e);
    sum = (a+b+c+d+e);
    if(sum==0)
        printf("-1");
    else if(sum%5==0)
        printf("%d\n", sum/5);
    else
        printf("-1\n");
}


Solution of 479A. Expression (Codeforces)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int p[10];

int main()
{
    int a, b, c, i;
    scanf("%d%d%d", &a, &b, &c);
    p[0] = a*b+c;
    p[1] = a+b*c;
    p[2] = a*(b+c);
    p[3] = (a+b)*c;
    p[4] = a+b+c;
    p[5] = a*b*c;
    sort(p, p+6);
    printf("%d\n", p[5]);
}


Solution of Codeforces 490A. Team Olympiad

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define sf scanf
#define pf printf
#define size 5005
int arr[size],  a1[size], a2[size], a3[size];

int min(int c1, int c2,int c3)
{
    if(c1<=c2 && c1<=c3)
    {
        return c1;
    }
    else if (c2<=c1 && c2<=c3)
    {
        return c2;
    }
    else
    {
        return c3;
    }
}

int main()
{
    int n, i;
    int count1 , count2, count3;
    int index1, index2, index3;
    sf("%d", &n);

    for(i=1; i<=n; i++)
    {
        sf("%d", &arr[i]);
    }
    count1=count2=count3=0;
    index1=index2=index3=1;
    for(i=1; i<=n; i++)
    {
        if(arr[i]==1)
        {
            a1[index1++] = i;
            count1++;
        }
        if(arr[i]==2)
        {
            a2[index2++] = i;
            count2++;
        }
        if(arr[i]==3)
        {
            a3[index3++] = i;
            count3++;
        }
    }
    int team = min(count1, count2, count3);
    pf("%d\n", team);
    for(i=1; i<=team; i++)
    {
        pf("%d %d %d\n", a1[i], a2[i], a3[i]);
    }
    return 0;
}




Compare equality of two string in C

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