Jumat, 15 November 2013

TURNAMEN PANCO (BNPCHS 2010 Final Round - Problem A)

Problem Code : HS10A
Time Limit : 1 seconds
Memory Limit : 32 megabytes
Pak Kumis menyelenggarakan sebuah turnamen panco dengan jumlah peserta 2N. Peserta pertama (P1) akan bertanding dengan peserta kedua (P2). P3 akan bertanding dengan P4, P5 akan bertanding dengan P6, dst. Pemenang dari P1 dan P2 akan bertanding dengan pemenang dari P3 dan P4, pemenang dari P5 dan P6 akan bertanding dengan pemenang dari P7 dan P8, dst (lihat bagan di bawah).
      Pak Kumis sudah mengetahui kekuatan setiap peserta yang mengikuti turnamen ini dan ia yakin tidak ada dua peserta yang memiliki kekuatan yang sama. Jika ada dua orang peserta yang bertanding, maka yang kuat lah yang menang. Bantu pak Kumis untuk memprediksi siapa yang akan memenangkan turnamen ini. Pada contoh di atas, turnamen ini dimenangkan oleh peserta ke 4 (P4) yang memiliki kekuatan 9 (Ia mengalahkan P3 yang mempunyai kekuatan 7 pada babak pertama, mengalahkan P1 yang memiliki kekuatan 5 pada babak kedua, dan mengalahkan P7 yang memiliki kekuatan 6 pada babak final).

Input

       Input dimulai dengan sebuah bilangan bulat T (T ≤ 100) yang menyatakan banyaknya kasus. Setiap kasus terdiri dari sebaris yang berisi sebuah bilangan bulat N (1 ≤ N ≤ 10). Baris berikutnya berisi 2N bilangan bulat Pi (1 ≤ Pi ≤ 5.000) yang merepresentasikan kekuatan dari peserta ke 1 hingga peserta ke 2N secara berurutan. Tidak ada dua peserta yang memiliki kekuatan yang sama.

Output

        Untuk setiap kasus, output dalam sebaris sebuah bilangan bulat yang menyatakan nomor peserta yang diprediksi akan memenangkan turnamen ini.

Sample InputOutput for Sample Input
1
3
5 2 7 9 1 3 6 4
4

With c++

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

main () {
    int k, t,a,p,b, Max, jur;
    int me[100];
    cin>>k;
        for(b=0;b<k;b++){
            cin>>t;
            t=pow(2,t);
            Max=0;
            jur=0;
          
                for(a=0;a<t;a++){
                    cin>>p;
                    if(p>Max){
                        Max=p;
                        jur=a+1;
                    };
                }
            me[b]=jur;
        }
    for(a=0;a<k;a++){
        cout<<me[a]<<endl;  
    }
  
}

Rabu, 13 November 2013

Titik di dalam Lingkaran

Problem Code : LINGKARAN
Time Limit : 1 seconds
Memory Limit : 64 megabytes
        Diberikan sebuah lingkaran dan sebuah titik. tentukan apakah titik tersebut terletak di garis, di dalam, atau di luar dari sebuah lingkaran

Input

Baris pertama berisi sebuah bilangan bulat T (T ≤ 1000) yang menyatakan jumlah kasus. Setiap kasus dimulai dengan tiga buah bilangan bulat X,Y,R (0 ≤ X,Y ≤ 10000; 1 ≤ R ≤ 10000) yang menyatakan titik pusat (X,Y) dan jari-jari (R). kemudian diikuti oleh sebuah baris yang berisi dua buah bilangan bulat X1,Y1 (1 ≤ X,Y ≤ 10000) yang menyatkan letak titik tersebut

Output

Untuk setiap kasus, output dalam satu baris "Kasus #A: DALAM" jika titik berada di dalam lingkaran, "Kasus #A: LUAR" jika titik berada di luar lingkaran, atau "Kasus #A: GARIS" jika titik berada di garis lingkaran, dengan A adalah nomor kasus dimulai dari 1 secara berurutan.


Contoh inputOutput untuk contoh input
3
0 0 5
3 4
0 0 5
3 3
0 0 5
3 6
Kasus #1: GARIS
Kasus #2: DALAM
Kasus 
 
 
 

 

 With C++

#include <iostream>
using namespace std;

main (){
    int t, x, y, r, xt, yt, a;
    int pu[1000], jar[1000];
    cin>>t;
        for(a=0;a<t;a++){
            cin>>x>>y>>r;
            cin>>xt>>yt;
            pu[a]=((xt-x)*(xt-x))+((yt-y)*(yt-y));
            jar[a]=r*r;
        }
        for(a=0;a<t;a++){
            cout<<"Kasus #"<<a+1<<": ";
            r=jar[a];
            if(pu[a]<r){
                cout<<"DALAM"<<endl;
            }else if(pu[a]==r){
                cout<<"GARIS"<<endl;
            }else{
                cout<<"LUAR"<<endl;
            }
        }
   
}

Kamis, 07 November 2013

Life and Universe

Problem Code : TEST
Time Limit : 2 seconds
Memory Limit : 32 megabytes
Your program is to use the brute-force approach in order to find the Answer to Life, the Universe, and Everything. More precisely... rewrite small numbers from input to output.
Stop processing input after reading in the number 42.
All numbers at input are integers of one or two digits.

Example
Input:
1
2
88
42
99

Output:
1
2
88
 
 
Answer :
 

With c++

#include <iostream>
using namespace std;

main (){
 int in[100],a,b;
 b=0;
 for(a=0,b=0;a!=42;b++){
  cin>>a;
  in[b]=a;  
 }
 
 for(a=0;a<b-1;a++){
  cout<<in[a]<<endl;
 }
 
}
 

With java 

import java.util.Scanner;
public class Jollybee {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int in[]= new int[100],a,b;
    for(a=0,b=0;a!=42;b++){
        a = scan.nextInt();
        in[b]=a;       
    }
   
     for(a=0;a<b-1;a++){
                  System.out.println(in[a]);
    }
    }
}