06 September 2015

UVA 12541 - Birthdates

/***
Md. Namzul Hasan
Shahjalal University of Science & technology,sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
int d ,m,y ;
struct ans
{
    string name ;
    int yy ,mm , dd ;
} socity[10001];

bool comp(ans a , ans b)
{
    if(a.yy == b.yy)
    {
        if(a.mm == b.mm)
        {
            return (a.dd>b.dd) ;
        }
        return a.mm>b.mm ;
    }
    return a.yy > b.yy ;
}

int main()
{
    int person ;
   string str ;
    cin>>person ;
    for(int i=0 ; i<person ; i++)
    {
        cin>>str>>d>>m>>y ;
        socity[i].name = str ;
        socity[i].dd = d ;
        socity[i].mm = m ;
        socity[i].yy = y ;
    }
    sort(socity , socity+person , comp) ;
      cout<<socity[0].name<<endl ;
      cout<<socity[person-1].name<<endl ;
    return 0;
}

05 September 2015

UVA 11777 - Automate the Grades

#include<iostream>
#include<stdio.h>
using namespace std ;

int term(int e, int g, int h)
{
    int m  ,x ;
  if((e>=h)&&(g>=h)) m = (e+g)/2 ;
  else if((e>=g)&&(h>=g)) m = (e+h)/2 ;
  else if((g>=e)&&(h>=e)) m = (g + h)/2 ;
    //int l = m/2 ;
    return m ;
}
int main()
{
    int i ,j , k ;
    cin>>i ;
    int a,b,c,d,e,f,g,h ;
    for(j=1 ; j<=i ; j++)
    {
       cin>>a>>b>>c>>d>>e>>g>>h ;
        int avg = term(e,g,h) ;
        k = a + b + c + d + avg ;
        if(k>=90)  cout<<"Case "<<j<<": "<<"A" ;
        else if((k>=80)&&(k<90)) cout<<"Case "<<j<<": "<<"B" ;
        else if((k>=70)&&(k<80)) cout<<"Case "<<j<<": "<<"C" ;
        else if((k>=60)&&(k<70)) cout<<"Case "<<j<<": "<<"D" ;
        else if(k<60) cout<<"Case "<<j<<": "<<"F" ;
        //if(j<i)
            cout<<endl ;
    }

    return 0 ;
}

UVA 11824 - A Minimum Land Price

#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <ctime>
#include <list>
#include <string>
#include <map>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <iostream>
#include <bitset>
#include <sstream>
#include <iterator>
#include <numeric>
const int amount = 5000000 ;

using namespace std ;

int main()
{
    vector <int> jak ;
    int test ;
    cin>>test ;
    while(test--)
    {
        int n ;
        while(cin>>n)
        {
            if(n==0)
                break ;
                jak.push_back(n) ;
        }
        sort(jak.begin(), jak.end()) ;
        int len = jak.size() ;
        int l = len ; long int k=0,j=1 ;
        for(int i=len-1 ; i>=0; i--)
        {
            k =  k+ (2 *pow(jak[i],j) ) ;
            j++ ;
        }
        if(k>amount)
            printf("Too expensive\n") ;
        else
            printf("%d\n",k) ;
        jak.clear() ;
    }
    return 0 ;
}

04 September 2015

UVA 11039 - Building designing

/***
Md. Namzul Hasan
Shahjalal University of Science & technology,sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))

vector< pair<ll, ll> >data ;

int main()
{
    int test ;
    cin>>test ;
    while(test--)
    {
        int flor,n ;
        cin>>flor ;
        while(flor--)
        {
            cin>>n ;
            if(n>0)
                data.pb(make_pair(n,n)) ;
                else if(n<0)
                    data.pb(make_pair((-1*n),n)) ;
        }
        sort(data.begin() , data.end()) ;
        int cnt =0 ;
        for(int i=0 ; i<data.size()-1 ; i++)
        {
            if(data[i].second>0 && data[i+1].second<0)
                cnt++ ;
            else if(data[i].second<0 && data[i+1].second>0)
                cnt++ ;
        }
        if(cnt==0)
            cnt++ ;
        else
            cnt++ ;
        pf("%d\n",cnt) ;
        data.clear() ;
    }
    return 0;
}

03 September 2015

UVA 10258 - Contest Scoreboard

#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<string>
#include<algorithm>
#include<queue>
#include<map>
#include<stack>
#include<deque>
#include<vector>
#include<ctype.h>
using namespace std;
#define inf 999999
#define MAX 100
#define gcd(a,b) __gcd(a,b)
#define i64 long long
int getInt(){int x;scanf("%d",&x);return x;}
long long getLongLong(){long long x;scanf("%lld",&x);return x;}
double getDouble(){double x;scanf("%lf",&x);return x;}
char  getChar(){char x;scanf("%c",&x);return x;}
#define Int getInt()
#define Char getChar()
#define I64 getLongLong()
#define Double getDouble()


struct contestant{
    int penalty[10]={0},times=0;
    bool solved[10]={0},touched=0;
    int total=0;
    int id;

};

bool comp(contestant a,contestant b)
{
    if(a.total==b.total)
    {
         if(a.times==b.times)
         {
            return a.touched>b.touched;
         }
         return a.times<b.times;

    }
    return a.total>b.total;
}

int main()
{
    int cases,caseno=0;
    cases= Int;
    char s[10000];
    gets(s);
    gets(s);
    while(cases--)
    {
        contestant con[101];
        if(caseno++)
            printf("\n");
        while(gets(s))
        {
            if(s[0]==NULL)
                break;
            int id,prbid,t;
            char v;
            sscanf(s,"%d %d %d %c",&id,&prbid,&t,&v);
            con[id].touched=1;
            con[id].id=id;

            if(v=='C')
            {
                if(!con[id].solved[prbid])
                {
                    con[id].solved[prbid]=1;
                    con[id].times+=t+con[id].penalty[prbid];
                    con[id].total++;
                    con[id].id=id;
                }
            }
            else if(v=='I')
            {
                if(!con[id].solved[prbid])
                {
                    con[id].penalty[prbid]+=20;
                    con[id].id=id;
                }
            }

        }
        sort(con+0,con+101,comp);

        for(int i=0;i<101;i++)
        {
            if(!con[i].touched)
                break;
            printf( "%d %d %d\n",con[i].id,con[i].total,con[i].times);
        }
    }
    return 0;

}

01 September 2015

UVA 10057 - A mid-summer night's dream.

/***
Md. Namzul Hasan
Shahjalal University of Science & technology,sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))

vector<int> data ;
int main()
{
    int n,m;
    while(cin>>n )
    {
        for(int i=0 ; i<n ; i++)
        {
            cin>>m ;
            data.push_back(m) ;
        }
        sort(data.begin() ,data.end()) ;
        int l = (n-1)/2  , r;
        if(n%2)
            r = l ;
        else
            r=  l+1 ;
        int cnt =0 ;
        for(int i=0 ; i<n ; i++)
        {
            if(data[l] <= data[i] && data[i] <= data[r])
                cnt++ ;
            if(data[r] < data[i])
                break ;
        }
        pf("%d %d %d\n",data[l],cnt,data[r]-data[l]+1) ;
        data.clear() ;
    }
    return 0;
}

UVA 10679 - I Love Strings!!