Tuesday, 11 August 2015

UVA 10815 Andy's First Dictionary

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100010

vector<string>v;
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int tc, kk=1, n;
    string s;
    char ch;
    while(cin>>s)
    {
        int i=0;
        while(i<s.size())
        {
            string tmp="";
                while((s[i]>='a' && s[i]<='z') || (s[i]>='A' && s[i]<='Z'))
                {
                    tmp+=tolower(s[i]);
                    i++;
                }
            if(tmp.size())
            v.push_back(tmp);
            i++;
        }

        // cout<< <<"\n";
    }
    sort(v.begin(), v.end());
    cout<<v[0]<<"\n";
    for(int i=1; i<v.size(); i++)
        if(v[i]!=v[i-1])
            cout<<v[i]<<"\n";
    return 0;
}

UVA 834 Continued Fractions

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100010


int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    int tc, kk=1, n, d;
    string s;
    char ch;
    while(cin>>n>>d)
    {
        if(n%d==0)
        {
            cout<<"["<<n/d<<"]\n";
            continue;
        }
        cout<<"["<<n/d<<";";
        n=n%d;
        while(n)
        {
            swap(n, d);
            if(n%d==0)
            {
                cout<<n/d<<"]\n";
                break;
            }
            cout<<n/d<<",";
            n=n%d;
        }
        //cout<< <<"\n";
    }
return 0;
}

UVA 489 Hangman Judge

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100010


int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    int tc, kk=1, n, arr[30];
    string s, s2;
    char ch;
    while(cin>>n)
    {
        if(n==-1) return 0;
        cin>>s>>s2;
        CLR(arr);
        int wa=0;
        for(int i=0;i<s.size();i++)
            arr[ s[i]-'a' ] = 1;
        cout<<"Round "<<n<<"\n";
        bool chk=false;
        for(int i=0;i<s2.size();i++)
        {
            if(arr[ s2[i]-'a'])
                arr[ s2[i]-'a']=0;
            else wa++;
            bool complete=true;
            for(int j=0;j<26;j++)
                if(arr[j])
                    complete=false;
            if(complete)
            {
                cout<<"You win.\n";
                chk=true;
                break;
            }
            if(wa==7)
            {
                cout<<"You lose.\n";
                break;
            }
        }
        if(!chk && wa<7)
        cout<<"You chickened out.\n";
    }
return 0;
}

UVa 624 - CD

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100010

int n, m, track[22], sum, ans;

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    int tc, kk=1;
    string s;
    char ch;
    while(cin>>n)
    {
        cin>>m;
        for(int i=0;i<m;i++) cin>>track[i];

        int lmt=1<<m, mx=0;
        for(int i=1;i<lmt;i++)
        {
            sum=0;
            for(int j=0;j<m;j++)
                if((i & (1<<j)))
                    sum+=track[j];
            if(sum<=n && sum>mx)
                mx=sum, ans=i;
        }
        for(int j=0;j<m;j++)
            if(ans & (1<<j))
                cout<<track[j]<<" ";
        cout<< "sum:"<< mx <<"\n";
    }
return 0;
}

Monday, 10 August 2015

UVa 10608 - Friends

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / uva ), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100010

vector<int>adj[30000+2];
bool vis[30000+2];
int cnt;

void dfs(int u)
{
    vis[u]=true;
    cnt++;
    int ul=adj[u].size();
    for(int i=0;i<ul;i++)
    {
        int v=adj[u][i];
        if(!vis[v]) dfs(v);
    }
return;
}

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    int kk=1, tc, n, m, u, v;
    string s;
    cin>>tc;
    while(tc--)
    {
        cin>>n>>m;
        for(int i=0;i<m;i++)
        {
            cin>>u>>v;
            adj[u].push_back(v);
            adj[v].push_back(u);
        }
        int mx=0;
        CLR(vis);
        for(int i=1;i<=n;i++)
        {
            if(!vis[i])
            {
                cnt=0;
                dfs(i);
                mx=max(mx, cnt);
                //cout<<cnt<<endl;
            }
        }
        //cout<<"Case "<<kk++<<": "<< <<"\n";
        cout<<mx<<"\n";
        for(int i=1;i<=n;i++) adj[i].clear();
    }

    return 0;
}