বুধবার, ২৫ অক্টোবর, ২০১৭

UVA 10608 - Friends

#include <bits/stdc++.h>
using namespace std;
long pr[30010];
long find(long r)
{
    if(pr[r]==r)
        return r;
    else
        return pr[r]=find(pr[r]);
}
main()
{
    long ts;
    cin>>ts;
    while(ts--)
    {
        long node,edge,i,u,v,x,y;
        cin>>node>>edge;
        for(i=1;i<=node;i++)
        {
            pr[i]=i;
        }
        for(i=1;i<=edge;i++)
        {
            cin>>u>>v;
            x=find(u);
            y=find(v);
            if(x!=y)
            {
                pr[y]=x;
            }
        }
        long mx=0,ar[30010]={0};
        for(i=1;i<=node;i++)
        {
            x=find(i);
            ar[x]++;
            mx=max(mx,ar[x]);
        }
        cout<<mx<<endl;
    }
}

বুধবার, ১৮ অক্টোবর, ২০১৭

UVA 10912 - Simple Minded Hashing

#include<bits/stdc++.h>
#define sf2(a,b) scanf("%lld%lld",&a,&b)
using namespace std;
bool vis[28][28][355];
long long dp[28][28][355];
long long l,s;
long long callkorlam(long long pos,long long len,long long tot)
{
    if(l==len)
    {
        if(tot==0)
            return 1;
        else
            return 0;
    }
    if(tot==0)
    {
        if(l==len)
            return 1;
        else
            return 0;
    }
    if(pos>26)
    {
        if(len==l&&tot==0)
        {
            return 1;
        }
        else
            return 0;
    }
    long long fst=0,scnd=0;
    if(vis[pos][len][tot]!=false)
    {
        return dp[pos][len][tot];
    }
    if(tot-pos>=0)
    {
        fst=callkorlam(pos+1,len+1,tot-pos);
    }
    scnd=callkorlam(pos+1,len,tot);
    vis[pos][len][tot]=true;
    return dp[pos][len][tot]=fst+scnd;
}
main()
{
    long long cs=1;
    while(cin>>l>>s)
    {
        long long rs=0;
        if(l==0&&s==0)
            break;
        memset(vis,false,sizeof(vis));
        if(l>26 || s>351)
        {
            rs=0;
        }
        else
        {
            rs=callkorlam(1,0,s);
        }
            printf("Case %lld: %lld\n",cs++,rs);
    }
}

UVA 10006 - Carmichael Numbers

#include<bits/stdc++.h>
#define sz 65100
using namespace std;
long status[65100];
void sieve()
{
    long long i,j;
    status[1]=1,status[0]=1;
    for(i=3;i<=sz;i++)
    {
        if(status[i]==0)
        {
            for(j=i*i;j<=sz;j+=i)
            {
                status[j]=1;
            }
        }
    }
}
long long bigmod(long long base,long long power,long long mod)
{
    long long ret=1;
    while(power)
    {
        if(power & 1)
            ret=(ret*base)%mod;
        base = (base*base)%mod;
        power=power>>1;
    }
    return ret;
}
main()
{
    sieve();
    long long n;
    while(cin>>n)
    {
        long long i1,xx,f=0;
        if(n==0)
            break;
        else
        {
            if(status[n]==0)
            {
                printf("%lld is normal.\n",n);
            }
            else
            {
                for(i1=2;i1<n;i1++)
                {
                    xx=bigmod(i1,n,n);
                    if(xx!=i1)
                    {
                        f=1;
                        break;
                    }
                }
               // cout<<f<<endl;
                if(f==0)
                {
                    printf("The number %lld is a Carmichael number.\n",n);
                }
                else
                {
                    printf("%lld is normal.\n",n);
                }
            }
        }
    }
}
UVA 

মঙ্গলবার, ১৭ অক্টোবর, ২০১৭

UVA 793 - Network Connections

#include<bits/stdc++.h>
using namespace std;
long par[1000005];
long find_korlam(long a1)
{
    if(par[a1]==a1)
        return a1;
    else
        find_korlam(par[a1]);
}
main()
{
    long ts,cs=1;
    cin>>ts;
    while(ts--)
    {
        long n,i;
        cin>>n;
        for(i=1;i<=n;i++)
            par[i]=i;
        char s;
        long a,b,u,v,success=0,unsuccess=0;
        getchar();
        while((s=getchar())&&(isalpha(s)))
        {
            cin>>a>>b;
            getchar();
            u=find_korlam(a);
            v=find_korlam(b);
            if(s=='c')
            {
                if(u!=v)
                    par[u]=v;
            }
            else if(s=='q')
            {
                if(u==v)
                {
                    success++;
                }
                else
                    unsuccess++;
            }
            else
                break;
        }
        if(cs>1)
            cout<<endl;
        cs++;
        cout<<success<<","<<unsuccess<<endl;
    }
}

UVA 11991 - Easy Problem from Rujia Liu?

#include<bits/stdc++.h>
using namespace std;
vector<long>vec[1000010];
main()
{
    long n,m;
    while(cin>>n>>m)
    {
        long i,a,b;
        for(i=1;i<=n;i++)
        {
            cin>>a;
            vec[a].push_back(i);
        }
        for(i=1;i<=m;i++)
        {
            cin>>a>>b;
           if(vec[b].size()<a)
                cout<<0<<endl;
            else
                cout<<vec[b][a-1]<<endl;
        }
        for(i=0;i<=1000000;i++)
        {
            vec[i].clear();
        }
    }
}

সোমবার, ২ অক্টোবর, ২০১৭

UVA 13148 - A Giveaway

#include <bits/stdc++.h>
using namespace std;
main()
{
    double n;
    while(cin>>n)
    {
        if(n==0)
            break;
        double ans = round(pow(n, 1./3.));
        double ans1=ans*ans*ans;
        if(ans1==n)
        {
            printf("Special\n");
        }
        else
            printf("Ordinary\n");
    }
}

OR

#include <bits/stdc++.h>
using namespace std;
main()
{
    long n;
    while(cin>>n)
    {
        if(n==0)
            break;
        double ans = round(pow(n, 1./3.));
        long ans1=ans*ans*ans;
        if(ans1==n)
        {
            printf("Special\n");
        }
        else
            printf("Ordinary\n");
    }
}


Factory Pattern

Factory Method  is a creational design pattern that provides an interface for creating objects in a superclass but allows subclasses to alte...