Saturday, 19 September 2015

সংখ্যা গণনা (Counting Numbers) Code Marshal Problem Solution Using C++.

সংখ্যা গণনা (Counting Numbers)

CPU: 0.5s
Memory: 512MB

একটি শ্রেণিতে Nটি ছাত্র আছে। কিছুদিন আগেই তারা একটি পরীক্ষা দিয়েছিল এবং আজকে তাদের পরীক্ষার খাতা দেখান হচ্ছে। এখন শিক্ষক জানতে চান কোন নম্বরটি সবচেয়ে বেশি সংখ্যক ছাত্র পেয়েছে এবং কত জন পেয়েছে।
In a class, there are N students. Recently they gave an exam and today teacher is giving away their exam copies. The teacher wants to find the number which is obtained by most of the students and the number of students who obtained that number.

ইনপুটের বর্ণনা

প্রথম লাইনে একটি ধনাত্মক সংখ্যা T দেওয়া আছে, যেটি হল কতগুলো কেস আছে তার মান। তার পরে Tটি লাইন আছে, যার প্রথমে আছে একটি সংখ্যা, N, ছাত্রদের সংখ্যার মান। N-এর পরে আছে Nটি সংখ্যা যেগুলো হল ছাত্রদের মার্ক। ছাত্ররা ০ থেকে ১০০ এর ভিতরেই মার্ক পেয়েছে।
সাবটাস্ক ১: 1<= N <= 1000, ৫০ পয়েন্টের জন্য।
সাবটাস্ক ২: 1<= N <= 100000, ৫০ পয়েন্টের জন্য।

Input Specification

The first line contains a positive integer T ( T <= 100 ), number of test case. In the following T lines, the first integer will be N, the number of students. After that N integers will follow which are the marks of students. A student will obtain mark between 0 and 100 inclusive.
Subtask 1: 1 <= N <= 1000, for 50 points.
Subtask 1: 1 <= N <= 100000, for 50 points.

আউটপুটের বর্ণনা

প্রতিটি কেসের জন্যে প্রথমে কেস এর মান প্রিন্ট দিতে হবে, তারপর দুইটি পূর্ণসংখ্যা যেটি হল কোন নাম্বারটি সবচেয়ে বেশি সংখ্যক ছাত্র পেয়েছে এবং কতজন ছাত্র ঐ নম্বরটি পেয়েছে। যদি এরকম দুইটি নাম্বার থাকে তাহলে বড়টি উত্তর হিসাবে দিতে হবে।

Output Specification

For each case print the case number, then two integers where first one is the number with maximum frequency and then the frequency of that marks. If several such outputs are possible, output the one with maximizes marks.

Sample

InputOutput
3 5 1 2 3 4 5 3 100 20 20 4 0 0 100 100Case 1: 5 1 Case 2: 20 2 Case 3: 100 2
Large input file. Use scanf/printf.


TAG: C++, CodeMarshal Problem, Counting Number , Easy Solution.

Problem Link:   https://algo.codemarshal.org/problems/556b62679c5e850300c49cb5



Solution:

#include<bits/stdc++.h>
using namespace std;
 /*
    *
    * Prosen Ghosh
    * American International University - Bangladesh (AIUB)
    *
*/
int main(){

  int T;
  scanf("%d",&T);
  for(int t = 1; t <= T; t++){
    int n,cnt[101] = {0},tmp;
    scanf("%d",&n);
    for(int i = 0; i < n; i++){
      scanf("%d",&tmp);
      cnt[tmp]++;
    }
    int high = 0,marks;
    for(int i = 0; i <= 100; i++){
      if(cnt[i] >= high){
        high = cnt[i];
        marks = i;
      }
    }
    printf("Case %d: %d %d\n",t,marks,high);
  }
  return 0;
}

গড় নম্বর (Average Marks) Code Marshal Problem Solution Using C++.

গড় নম্বর (Average Marks)

CPU: 0.5s
Memory: 512MB

একটি শ্রেণিতে Nটি ছাত্র আছে। কিছুদিন আগেই তারা একটি পরীক্ষা দিয়েছিল এবং আজকে তাদের পরীক্ষার খাতা দেখান হচ্ছে। এখন শিক্ষক তাদের সবার মার্কের গড় জানতে চান। তোমাকে N এবং Nটি ছাত্রের পরীক্ষার মার্ক দেওয়া হয়েছে। তোমাকে তাদের গড় মার্ক গণনা করতে হবে।
In a class, there are N students. Recently they gave an exam and today teacher is giving away their exam copies. The teacher wants to find the average score of the class. So, given N and N marks which each of the students obtained, find the average score of the class.

ইনপুটের বর্ণনা

প্রথম লাইনে একটি ধনাত্মক সংখ্যা T দেওয়া আছে, যেটি হল কতগুলো কেস আছে তার মান। তার পরে Tটি লাইন আছে, যার প্রথমে আছে একটি সংখ্যা, N ( ১ <= N <= ১০০ ), ছাত্রদের সংখ্যার মান। N-এর পরে আছে Nটি সংখ্যা যেগুলো হল ছাত্রদের মার্ক। ছাত্ররা ০ থেকে ১০০ এর ভিতরেই মার্ক পেয়েছে।

Input Specification

The first line contains a positive integer T ( T <= 100 ), number of test case. In the following T lines, the first integer will be N ( 1 <= N <= 100 ), the number of students. After that N integers will follow which are the marks of students. A student will obtain mark between 0 and 100 inclusive.

আউটপুটের বর্ণনা

প্রতিটি কেসের জন্যে প্রথমে কেস এর মান প্রিন্ট দিতে হবে, তারপর একটি পূর্ণসংখ্যা যেটি হল শ্রেণীকক্ষের গড়।

Output Specification

For each case print the case number, then a single integer which is the average score of the class.

Sample

InputOutput
3 5 1 2 3 4 5 3 100 0 20 4 0 0 100 100Case 1: 3 Case 2: 40 Case 3: 50

বিঃদ্রঃ গড় এর মান সব কেসের জন্যে পূর্ণসংখ্যা হবে নিশ্চিত করা হয়েছে।
NOTE: It is guaranteed that the average score will be integer.


TAG: C++, CodeMarshal Problem, Average Number , Easy Solution.

Problem Link:   https://algo.codemarshal.org/problems/556b5d2a9c5e850300c49cae


Solution:

#include<bits/stdc++.h>
using namespace std;
/*
    *
    * Prosen Ghosh
    * American International University - Bangladesh (AIUB)
    *
*/
int main(){

    int T;
    cin >> T;
    for(int t = 1; t <= T; t++){
        int n,num,sum = 0;
        cin >> n;
        for(int i = 0; i < n; i++){
            cin >> num;
            sum+=num;
        }
        cout << "Case " << t << ": " << sum/n << endl;
    }
    return 0;
}

সর্বোচ্চ সংখ্যা (Maximum Number) Code Marshal Problem Solution Using C++.

সর্বোচ্চ সংখ্যা (Maximum Number)

CPU: 0.5s
Memory: 512MB

তিনটি পূর্ণ সংখ্যা দেওয়া আছে, তোমাকে তাদের মধ্যে সর্বোচ্চ সংখ্যার মান বের করতে হবে।
Given three integers A, B and C, you have to output the maximum number between them.

ইনপুটের বর্ণনা

প্রথম লাইনে থাকবে কেসের সংখ্যা, একটি ধনাত্মক পূর্ণসংখ্যা T (T <= ১০০)। তার পরের লাইনে থাকবে তিনটি করে পূর্ণসংখ্যা। A, B এবং C-এর পরমমান ২০০ থেকে বেশি হবে না। ( |A|,|B|,|C| <= 200 )

Input Specification

The first line contains a positive integer T ( T <= 100 ), number of test case. In the following T lines, you will be given three integers. The absolute value of A and B and C will not exceed 200.

আউটপুটের বর্ণনা

প্রতিটি কেসের জন্যে কেস নাম্বার এবং তার পর সর্বোচ্চ সংখ্যার মান প্রিন্ট দিতে হবে।

Output Specification

For each case print the case number, and the maximum number between the three integers.

Sample

InputOutput
4 1 2 3 3 2 1 -3 -2 -2 2 2 2Case 1: 3 Case 2: 3 Case 3: -2 Case 4: 2

TAG: C++, CodeMarshal Problem, Maximum Number , Easy Solution.

Problem Link:   https://algo.codemarshal.org/problems/556b5a1e9c5e850300c49cac


Solution:

#include<bits/stdc++.h>
using namespace std;
/*
    *
    * Prosen Ghosh
    * American International University - Bangladesh (AIUB)
    *
*/
int main(){

    int n,ar[4];
    cin >> n;
    for(int i = 1; i <= n; i++){
        int myMax = -325840;
        for(int j = 0; j < 3; j++){
            cin >> ar[j];
            if(ar[j] > myMax)myMax = ar[j];
        }
        cout << "Case " << i << ": " << myMax << endl;
    }
    return 0;
}

Friday, 18 September 2015

Pangrams Hacker Rank Problem Solution Using C++.

/*
Problem Statement
Roy wanted to increase his typing speed for programming contests. So, his friend advised him to type the sentence "The quick brown fox jumps over the lazy dog" repeatedly, because it is a pangram. (Pangrams are sentences constructed by using every letter of the alphabet at least once.)
After typing the sentence several times, Roy became bored with it. So he started to look for other pangrams.
Given a sentence s, tell Roy if it is a pangram or not.
Input Format Input consists of a line containing s.
Constraints
Length of s can be at most 103 (1|s|103) and it may contain spaces, lower case and upper case letters. Lower case and upper case instances of a letter are considered the same.
Output Format Output a line containing pangram if s is a pangram, otherwise output not pangram.
Sample Input #1
We promptly judged antique ivory buckles for the next prize    
Sample Output #1
pangram
Sample Input #2
We promptly judged antique ivory buckles for the prize    
Sample Output #2
not pangram
Explanation
In the first test case, the answer is pangram because the sentence contains all the letters of the English alphabet.
TAG: Hacker Rank, C++,String Problem,Implementation,Easy Solution;
Problem Link: https://www.hackerrank.com/challenges/pangrams
*/

Solution:

#include<bits/stdc++.h>
using namespace std;
/*
    *
    * Prosen Ghosh
    * American International University - Bangladesh (AIUB)
    *
*/
char toLower(char c){

    if(c >=65 && c <= 90)c+=32;
    return  c;
}
int main(){

    stack<char> letters;
    char ch = 97;
    for(int i = 0; i < 26; i++)letters.push(ch++);
    string str;
    getline(cin,str);
    for(int j = 0; j < 26; j++){
        for(int i = 0; i < str.length(); i++){
            if(toLower(str[i]) == letters.top()){
                letters.pop();
                break;
            }
        }
    }
    if(letters.empty())cout << "pangram" << endl;
    else cout << "not pangram" << endl;
    return 0;
}

Funny String Hacker Rank Problem Solution Using C++.

/*
Problem Statement
Suppose you have a string S which has length N and is indexed from 0 to N1. String R is the reverse of the string S. The string S is funny if the condition |SiSi1|=|RiRi1|is true for every i from 1 to N1.
(Note: Given a string strstri denotes the ascii value of the ith character (0-indexed) of str. |x| denotes the absolute value of an integer x)
Input Format
First line of the input will contain an integer TT testcases follow. Each of the next T lines contains one string S.
Constraints
  • 1<=T<=10
  • 2<=length of S<=10000
Output Format
For each string, print Funny or Not Funny in separate lines.
Sample Input
2
acxz
bcxz
Sample Output
Funny
Not Funny
Explanation
Consider the 1st testcase acxz
here
|c-a| = |x-z| = 2
|x-c| = |c-x| = 21
|z-x| = |a-c| = 2
Hence Funny.
Consider the 2nd testcase bcxz
here
|c-b| != |x-z|
Hence Not Funny.

Problem Link: https://www.hackerrank.com/challenges/funny-string
TAG: Hacker Rank, C++,String Problem,Implementation,Easy Solution;
*/

Solution:

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
/*
    *
    * Prosen Ghosh
    * American International University - Bangladesh (AIUB)
    *
*/
int main() {
 
    int n;
    cin >> n;
    for(int i = 0; i < n; i++){
        string str;
        cin >> str;
        int j = str.length()-1;
        bool state = true;
        for(int i = 1; i < str.length(); i++,j--){

            if(abs(str[i]-str[i-1]) != abs(str[j]-str[j-1])){
                state = false;
                break;
            }
        }
        if(state)cout << "Funny" << endl;
        else cout << "Not Funny" << endl;
    }
    return 0;
}