Pages

Sunday 22 December 2013

UVA - 12626 - I ❤ Pizza

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include <string.h>

int min(int x,int y){
    if(x<y)
        return x;
    return y;
}

int main()
{
    int n=0;
    scanf("%d",&n);
    while(n--){
        int M=0,A=0,R=0,G=0,I=0,T=0,i=0,z=0;
        char str[600];
        scanf("%s",str);
        z=strlen(str);
        for(i=0;i<z;i++){
            if(str[i]=='M')
                M++;
            else if(str[i]=='A')
                A++;
            else if(str[i]=='R')
                R++;
            else if(str[i]=='G')
                G++;
            else if(str[i]=='I')
                I++;
            else if(str[i]=='T')
                T++;
        }
        int answer=min(min(min(min(min(M,A/3),R/2),G),I),T);
        printf("%d\n",answer);
    }
    return 0;
}


UVA - 12704 - Little Masters

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>

int main()
{
    int n=0;
    scanf("%d",&n);
    while(n--){
        float x=0,y=0,r=0;
        scanf("%f %f %f",&x,&y,&r);
        double s=sqrt(x*x+y*y);
        printf("%.2f %.2f\n",r-s,r+s);
    }
    return 0;
}

UVA - 12700 - Banglawash

#include <stdio.h>

int main()
{
    int n=0,cases=1;
    scanf("%d",&n);
    while(n--){
        int matches=0,i=0;
        scanf("%d",&matches);
            char str[11];
            scanf("%s",str);
            int A=0,B=0,T=0,W=0;
            for(i=0;i<matches;i++){
                if(str[i]=='A')
                    A++;
                else if(str[i]=='B')
                    B++;
                else if(str[i]=='T')
                    T++;
                else if(str[i]=='W')
                    W++;
            }
            if((B+A==matches)&& B!=0)
                printf("Case %d: BANGLAWASH\n",cases);
            else if((W+A==matches) && W!=0)
                printf("Case %d: WHITEWASH\n",cases);
            else if(A==matches)
                printf("Case %d: ABANDONED\n",cases);
            else if(B>W)
                printf("Case %d: BANGLADESH %d - %d\n",cases,B,W);
            else if(B<W)
                 printf("Case %d: WWW %d - %d\n",cases,W,B);
            else if(B==W)
                printf("Case %d: DRAW %d %d\n",cases,B,T);
            cases++;
    }
    return 0;
}

Monday 16 December 2013

UVA - 12708 - GCD The Largest

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n=0;
    long x=0;
    scanf("%d",&n);
    while(n--){
        scanf("%ld",&x);
        if(x%2!=0){
            x--;
        }
        printf("%ld\n",x/2);
    }
    return 0;
}

UVA - 12592 - Slogan Learning of Princess

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuffer sb=new  StringBuffer();
        int cases = Integer.parseInt(br.readLine());
        HashMap<String,String> hm=new HashMap<String, String>();
        for (int i = 0; i < cases; i++) {
            hm.put(br.readLine().trim(),br.readLine().trim());
        }
        cases = Integer.parseInt(br.readLine());
        for (int i = 0; i < cases; i++) {
            sb.append(hm.get(br.readLine().trim())).append("\n");
        }
        System.out.print(sb);
    }
}

Friday 6 December 2013

Facebook Hacker Cup 2014 - Qualification - Problem B - Basketball Game

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.StringTokenizer;

public class Solution {

    public static void main(String[] args) throws IOException {
        BufferedReader br
            =new BufferedReader(new InputStreamReader(System.in));
        StringBuffer sb=new StringBuffer();
        int t=Integer.parseInt(br.readLine());
        for(int i=0;i<t;i++){
            StringTokenizer st=new StringTokenizer(br.readLine());
            int n=Integer.parseInt(st.nextToken());
            int m=Integer.parseInt(st.nextToken());
            int p=Integer.parseInt(st.nextToken());
            Player[] pls=new Player[n];
            for(int j=0;j<n;j++){
                st=new StringTokenizer(br.readLine());
                pls[j]=new Player(st.nextToken(),
                      Integer.parseInt(st.nextToken()),
                      Integer.parseInt(st.nextToken()));
            }
            Arrays.sort(pls);
            LinkedList<PlayerPlaying> team1
                       =new LinkedList<PlayerPlaying>();
            LinkedList<PlayerPlaying> team1Sit
                       =new LinkedList<PlayerPlaying>();
            LinkedList<PlayerPlaying> team2
                       =new LinkedList<PlayerPlaying>();
            LinkedList<PlayerPlaying> team2Sit
                       =new LinkedList<PlayerPlaying>();
            for(int j=n-1,counter=1;j>-1;j--,counter++){
                if(j%2==0){
                    if(team1.size()<p)
                        team1.add(new PlayerPlaying
                            (pls[j].getName(),counter, 0));
                    else
                        team1Sit.add(new PlayerPlaying
                            (pls[j].getName(),counter, 0));
                }else{
                    if(team2.size()<p)
                        team2.add(new PlayerPlaying
                             (pls[j].getName(),counter, 0));
                    else
                        team2Sit.add(new PlayerPlaying
                            (pls[j].getName(),counter, 0));
                }
            }
            
            for(int j=0;j<m;j++){
                 Iterator<PlayerPlaying> it=team1.iterator();
                 while(it.hasNext()){
                     it.next().incPlayed();
                 }
                 it=team2.iterator();
                 while(it.hasNext()){
                     it.next().incPlayed();
                 }
                 if(!team1Sit.isEmpty()){
                     Collections.sort(team1Sit);
                     PlayerPlaying playteam1=team1Sit.removeLast();
                     Collections.sort(team1);
                     PlayerPlaying sitteam1=team1.remove();
                     team1.add(playteam1);
                     team1Sit.add(sitteam1);
                 }
                 if(!team2Sit.isEmpty()){
                     Collections.sort(team2Sit);
                     PlayerPlaying playteam2=team2Sit.removeLast();

                     Collections.sort(team2);
                     PlayerPlaying sitteam2=team2.remove();

                     team2.add(playteam2);

                     team2Sit.add(sitteam2);
                 }
            }
            sb.append("Case #").append(i+1).append(": ");
            String[]arrNames=new String[2*p];
            for(int j=0;j<p;j++){
                arrNames[j]=team1.remove().getName();
                arrNames[j+p]=team2.remove().getName();
            }
           Arrays.sort(arrNames);
           for(int j=0;j<arrNames.length;j++){
               if(j>0)
                sb.append(" ");
               sb.append(arrNames[j]);
           }
           sb.append("\n");
        }
        System.out.print(sb);
    }
 
    
}

class Player implements Comparable<Player>{
    private String name;
    private int height;
    private int shotPercentage;

    public Player(String str,int s,int h) {
        this.name=str;
        this.shotPercentage=s;
        this.height=h;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    public int getShotPercentage() {
        return shotPercentage;
    }

    public void setShotPercentage(int shotPercentage) {
        this.shotPercentage = shotPercentage;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    

    @Override
    public int compareTo(Player o) {
        if(this.shotPercentage>o.getShotPercentage()){
            return 1;
        }
        else if(this.shotPercentage<o.getShotPercentage()){
            return -1;
        }else{
            if(this.height>o.getHeight()){
                return 1;
            }
            return -1;
        }
    }
    
}

class PlayerPlaying implements Comparable<PlayerPlaying> {
    private int draft;
    private int minPlayed;
    private String name;

    public PlayerPlaying(String name,int draft, int minPlayed) {
        this.name=name;
        this.draft = draft;
        this.minPlayed = minPlayed;
    }

    public int getDraft() {
        return draft;
    }

    public void setDraft(int draft) {
        this.draft = draft;
    }

    public int getMinPlayed() {
        return minPlayed;
    }

    public void setMinPlayed(int minPlayed) {
        this.minPlayed = minPlayed;
    }
    
    public void incPlayed(){
        minPlayed++;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
    

    @Override
    public int compareTo(PlayerPlaying o) {
       if(minPlayed<o.getMinPlayed()){
           return 1;
       }
       if(minPlayed>o.getMinPlayed()){
           return -1;
       }else{
           if(draft<o.getDraft()){
               return 1;
           }
           return -1;
       }
    }
    
    
}

    

Facebook Hacker Cup 2014 - Qualification - Problem A - Square Detector

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution { 
 
 public static void main(String[] args)
  throws IOException {
        BufferedReader br=new BufferedReader
               (new InputStreamReader(System.in));
        StringBuffer sb=new StringBuffer();
        int t=Integer.parseInt(br.readLine());
        for(int i=0;i<t;i++){
            int n=Integer.parseInt(br.readLine());
            boolean[][]arr=new boolean[n][n];
            for(int j=0;j<n;j++){
                String temp=br.readLine();
                for(int z=0;z<temp.length();z++){
                    if(temp.charAt(z)=='#'){
                        arr[j][z]=true;
                    }
                }
            }
            sb.append("Case #").append(i+1)
                  .append(": ");
            if(checkForSquare(arr)){
               sb.append("YES");
            }else{
               sb.append("NO");
            }
            sb.append("\n");
        }
        System.out.print(sb);
    }
 
    static boolean checkForSquare(boolean[][]arr){
        int iStart=-1,jStart=-1;
        boolean flag=false;
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                if(arr[i][j]){
                    iStart=i;
                    jStart=j;
                    flag=true;
                    break;
                }
            }
            if(flag){
                break;
            }
        }
        if(iStart==-1&&jStart==-1){
            return false;
        }
        int iEnd=-1,jEnd=-1;
        flag=false;
        for(int i=arr.length-1;i>-1;i--){
            for(int j=arr[i].length-1;j>-1;j--){
                if(arr[i][j]){
                    iEnd=i;
                    jEnd=j;
                    flag=true;
                    break;
                }
            }
            if(flag){
                break;
            }
        }
        if(iStart==iEnd&&jStart==jEnd){
            return true;
        }
        if(iStart>iEnd || jStart>jEnd){
            return false;
        }
        if(iStart-iEnd!=jStart-jEnd){
            return false;
        }
        for(int i=iStart;i<=iEnd;i++){
            for(int j=jStart;j<=jEnd;j++){
                if(!arr[i][j]){
                    return false;
                }
            }
        }
        return true;
    }
}