তোমরা হয়ত মি. হতাশ এর কথা শুনে থাকবে। লোকটা ছোট বেলায় শুধু বড় বড় কথা বলত আর চিন্তা করত! একদিন সে ভাবলো একদিনের জন্য সে ছুটি নিবে। কোন কাজ নেই , বেচারা আকশের দিকে তাকিয়ে আছে। হটাৎ করে সে একটা তারার দিকে তাকিয়ে ভাবল , "এটা কি আসলেই এমন? নাকি ভেজাল আছে?" যেমনি ভাবা তেমনি কাজ …… ভেজাল তাকে প্রমাণ করতেই হবে । অবশেষে অনেক সাধনা করে আইন্সটাইন এর রিলেটিভিটি ঘাটাঘাটি করতেই সে বুঝতে পারল “এই তারা আসলে সেই তারা , আমরা তো আসলে একটা টাইম মেশিনের দিকে তাকিয়ে আছি” – অসাধারন …! তাই নয় কি ? মানুষ এত চেস্টা করে টাইম মেশিন বানাতে চায় , কিন্তু টাইম মেশিন তো চোখের সামনে, দেখা যায় কিন্তু ব্যবহার করা যায় না ,আকাশ তো পুরোটাই একটা টাইম মেশিন ।

কিন্তু একটা কাজ ধরেছে মি. হতাশ, হতাশ না হয়ে বাড়ি ফিরলে কি হয়? তো কি করা যায়? হতাশ হবার আশায় সে তারা গোনা আরম্ভ করল। কিন্তু তারা গুনে কি আর শেষ হয়? সে তারা গোনে আর লিখে এ তারাটা তার কতটুকু ভালো লেগেছে। প্রত্যেক তারারই ভালো লাগার একটা মান আছে। কোন দুটো তারারই ভালো লাগার মান সমান হতে পারে না। কিন্তু মি. হতাশ বার বার ভুল করে একই তারার মান খাতায় লিখে ফেলে, আকাশ তো আর ছোট না । আকাশ দেখেই তো মানুষ অসীমকে দেখতে পায়।

তোমার কাছে এখন মি. হতাশ এর খাতার ভ্যালু গুলো আছে, তোমার বলতে হবে মি. হতাশ হতাশ হবার আগে কতগুলো আলাদা তারা গুনেছে। চিন্তা করো না, তারা গুনতে গুনতেই হয়ত তুমি একদিন গ্যালিলিও , আইন্সটাইন হয়ে যাবা। যাই হোক গ্যালিলিও, আইন্সটাইন এর কম্পিঊটার ছিলো না, তোমার আছে ।

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

ইনপুট ফাইল এর প্রথম লাইন এ থাকবে একটি ধনাত্মক পূর্ণ সংখ্যা T ( T <= 1000 ) যা ফাইল এ কতগুলো ইনপুট সেট আছে তা বুঝাবে। এর পরে একটা একটা করে প্রতিটি ইনপুট সেট থাকবে। প্রতিটা ইনপুট সেটের প্রথম লাইন এ একটি ভ্যালু N ( N <= 10000 ) থাকবে যেটা পরর্তী লাইন এ কতগুলো ভ্যালু আছে তা জানাবে। পরবর্তী লাইনের ভ্যালু গুলোই মি. হতাশের লেখা ভ্যালু। মি. হতাশের প্রত্যেক ভ্যালুর মান ভ্যালুর মান -10 12 থেকে 10 12 এর মধ্যে হবে।

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

আউটপুটে কেস নাম্বার এবং উত্তরটি লিখতে হবে। বিস্তারিত উদাহরনে দেখ।

Sample

**Input**
3
3
1 2 3
5
0 1 0 2 3
2
1000 1000

`

`**Output**
    Case 1: 3 
    Case 2: 4 
    Case 3: 1

My stupid code (after 3 hours)--

http://ideone.com/4opOTJ

Give me hints.How to calculate the double value ??

asked 15 Mar '16, 09:07

AhadKhan's gravatar image

AhadKhan
95325


খুব সহজ করে একটি সমাধান বলি । এখানে আমি একটি করে ধাপ বলবো সাথে ২য় কেস এর ইনপুটটি উদাহরণ হিসেবে নিবো ।

প্রথমে ডাটাগুলোকে একটি এরেতে রাখি । আপনি এখানে যেটি করেছেন তা ঠিক আছে । তবে এরের সাইজ ১০০২ নিলে হবে না । ১০০০০ বা তার বেশি নিতে হবে । খুব ভালো হয় ১০০০৫ নিলে ।

int ara[10005];

তাহলে আমার এরেটি হবে এরকম { ০,১,০,২,৩ }

প্রথমে সকল ডাটাগুলো মানের উর্ধক্রমে বা নিম্নক্রমে সাজান । যে কোনো একটি হলেই হবে । আমি এখানে উর্ধক্রমে সাজাবো । এবং এখন আমার এরেটি হবে এরকম { ০,০,১,২,৩ }

এবার হিসাব করা শুরু প্রথম থেকে । হিসাবের জন্য cnt নিলাম যার মান শুরুতে ০ ।

প্রথম ০ এর জন্য cnt এর মান ১
পরের ০ এর জন্য cnt এর মান ১ [কারন আগের মানটি শূন্য ছিলো]
পরের ১ এর জন্য cnt এর মান ২ [কারন আগের মানটি ১ ছিলো না]
পরের ২ এর জন্য cnt এর মান ৩ [কারন আগের মানটি ২ ছিলো না]
পরের ৩ এর জন্য cnt এর মান ৪ [কারন আগের মানটি ২ ছিলো না]

অর্থাৎ এখানে দেখতে হবে বর্তমান মানটি আগের মানটির সমান কি না । সমান হলে কিছু যোগ করতে হবে না , কারন আগের ক্ষেত্রে যোগ করা হয়েছে । সমান না হলে এক যোগ করে দিলেই হবে ।

permanent link

answered 15 Mar '16, 18:16

Sharif%20Chowdhury's gravatar image

Sharif Chowdhury
3.5k111

আপনাকে অনেক ধন্যবাদ । এভাবে সাহায্য করলে আপনাদের কাছ থেকে অনেক কিছু শিখতে পারব ।

(16 Mar '16, 03:46) AhadKhan

ভাইয়া আমার কোড ঠিক আওটপুট দিচ্ছে ,কিন্তু জাজ এ wrong answer দিতছে!

আমার কোড--http://ideone.com/C62QjD

প্রবলেম টা আছে এই লিঙ্কে--https://algo.codemarshal.org/problems/556cb4f82251f00300a82f49

(16 Mar '16, 04:15) AhadKhan

আপনার কোড এ

 if(ara[i]>ara[i-1]) // লাইন ৩২

এই চেক করার সময় যখন i এর মান 0 তখন i-1 এর মান -1, কিন্তু ara[-1] বলে কিছু নাই । তাই এখানে wrong ans । আরেকটি কথা এখানে প্রত্যেকটির মান ১০^১২ তাই int এ কাজ হবে না long long লাগবে ।

permanent link

answered 16 Mar '16, 05:17

Sharif%20Chowdhury's gravatar image

Sharif Chowdhury
3.5k111

edited 16 Mar '16, 05:49

if(ara[i]>ara[i-1]) // লাইন ৩২ যদি দেই তাহলে ৪৫ মার্ক্স পাই, আবার if(ara[i+1]==ara[i]) দিলে রঙ answer শো করে ।

http://ideone.com/C62QjD

এইটা আমার মতে সঠিক ,কিন্তু এইটা জাজ এ দিলে ০ পাও্য়া যায়। আর if(ara[i]>ara[i-1]) দিলে ৪৫ মার্ক্স আসে , বাকিগুলাতে "Time Limit Exceed" শো করে, একটু দেখবেন please.আজ ২ দিন ধরে ট্রাই করছি। আপনি হেল্প করাতে তাও কিছু পারলাম।কিন্তু আমি জিনিসটা জানতে চাচ্ছি । যদি একটু বুঝিয়ে দেন খুব ভাল হয়।

(16 Mar '16, 06:23) AhadKhan

"Time Limit Exceed" হচ্ছে আপনি যেভাবে সর্ট (বাবল) করেছেন তা অনেক টাইম নেয় । আপনি কুইক সর্ট ব্যাবহার করতে পারেন । প্রথম অবস্থায় কিভাবে কুইক সর্ট কাজ করে তা দেখে কোড করতে পারেন।

অথবা এখানে আপনি STL এর sort ও ব্যাবহার করতে পারেন । এতে খাটনি কম হবে আপনার ।

এর জন্য আপনাকে কিছু পরিবর্তন করতে হবে ।

১। সি এর জায়গায় সি++ দিয়ে করতে হবে । এর জন্য ফাইলের নামের শেষে .c এর জায়গায় .cpp দিতে হবে ।

২। হেডার ফাইল এড করতে হবে ।

#include< bits/stdc++.h> // add all header file
using namespace std;   // add namespace std

৩। sort ফাংশন কল করতে হবে ।

আমার কোডটি দিলাম বুঝতে সমস্যা হলে দেখে নিতে পারেন ।

কোড

permanent link

answered 16 Mar '16, 07:09

Sharif%20Chowdhury's gravatar image

Sharif Chowdhury
3.5k111

edited 16 Mar '16, 16:33

আপনাকে অনেক ধন্যবাদ বুজিয়ে দেওয়ার জন্য ।

(16 Mar '16, 08:03) AhadKhan
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×402
×214
×70
×33

question asked: 15 Mar '16, 09:07

question was seen: 1,186 times

last updated: 16 Mar '16, 16:33