Wednesday, September 13, 2017

556A. Case of the Zeros and Ones Codeforces Problem Solution In (C++,C#) & Logic

http://codeforces.com/problemset/problem/556/A

খুবই সহজ একটা প্রোবলেম , তোমায় একটা স্ট্রিং দেয়া থাকবে । । স্ট্রিং-এ শুধু ১ /০ থাকবে । এছাড়া
কিছুই থাকবে না  ।। এখন ঘটনা হলো -- তোমায় স্ট্রিং এ যখনই ১ আর ০ পাশাপাশি থাকবে -- তখনই
পাশাপাশি থাকা ১ আর ০ ভ্যানিস করে দিতে হবে , অবশেষে -- স্ট্রিং এর লেংথ কতো হয় ?? সেটা তোমায় প্রিন্ট করতে হবে । চলো , একটা উদাহরন দেখে নেই ----

 111011101 > 11  11  1  \\  তাহলে ০ গুলি উঠে গিয়ে এখন লেংথ হলো মোট ৫ । যেখান থেকে -
                                                    ০ আর ১ উঠে গেছে ,সেই যায়গা গুলো ফাকা আছে বোঝার সুবিধার
                                                    জন্য ।

তো আমাদের একটা সহজ উপায় আছে , সেটা হলো - প্রথমে কয়টা ১ আর ০ আছে , সেটা বের করে নেয়া । এখানে , ১ এর পরিমাণ হলো --  ৭ টা আর ০ দুইটা । তাইলে , আমি বুঝতেই পারছি যে -- ০ আছে ১ এর চেয়ে কম , এর মানে  ০ আর ১ উঠিয়ে দিলে ০ শেষ হয়ে গেলেও ১ শেষ হবে না , তাই না ??  এখন , ০ যে কয়টা আছে , তার ডাবল সংখ্যক ক্যারেক্টার এই স্ট্রিং থেকে বাদ দিতে হবে , কারণ প্রত্যেকটা ০ উঠে যাবার সময় , একটা করে ১কেও সাথে করে  উঠিয়ে নিয়ে যাবে ।

তো যাই হোক , ০ এর সংখ্যা বেশি হলেও ১ এর সংখ্যাকে ডাবল করতে হতো ------

চলো , কোড দেখি এইবার --------------

IN C++ LANGUAGE...............

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

int main()
{
    int count=0,l,rount=0;
    cin>>l;
   string s;
   cin>>s;
   for(int i=0;i<l;i++)
   {
       if(s[i]=='1')
        count+=2;
       else
        rount+=2;
   }
   cout<<l-min(count,rount)<<endl;
   return 0;
}
 
IN C# LANGUAGE.........
 
using System;


namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)

        {
           
    int count=0,l,rount=0;
    l=Convert.ToInt32(Console.ReadLine());
   string s=Console.ReadLine();
   for(int i=0;i<l;i++)
   {
       if(s[i]=='1')
        count++;
       else
        rount++;
   }

   
   int q=0;
   if(count>rount)
   {
        q=rount;
   } 
   else{
       q=count;
   }
   Console.WriteLine((l-2*q));
   Console.ReadLine();
}

        }
    }
  

No comments:

Post a Comment