Skip to main content

[ UVa ] 11953 - Battleships.

  • এখানে আমাদেকে বের করতে হবে য়ুদ্ধ শেষে কয়টা য়ুদ্ধ জাহাজ ভাসমান অবস্থায় থাকবে ।   x দিয়ে বলা হচ্ছে এটা জাহাজ বা জাহাজের অংশ । আর @ দিয়ে বলা হচ্ছে ওই জাগায় বোম আঘাত করেছিল এবং ' . ' মানে ফাকা জায়গা । 
  • আমরা আমাদের গ্রিডের প্রথম থেকে য়ুদ্ধ জাহাজ খোজা শুরু করবো । যদি x পাই তার মানে এখানে  একাটা  য়ুদ্ধ জাহাজ পেয়ে গেছি
  • আমরা এই x এর আশেপাশে যত x ও @ আছে সেগুলো ' . ' দিয়ে পরিবর্তন করে দিব । যাতে করে একই জাহাজ কে আমরা একাধিক বার হিসাব না করি । 
  • আমাদের কে আশেপাশে ৪ দিকে গিয়ে চেক করতে হবে । 
  • সব শেষে আমরা মোট কতটা জাহাজ ভাসমান অবস্থায় পেলাম সেটা প্রিন্ট করে দিব । 
কোড :
/**
* Problem : 11953 - Battleships.
* Verdict : Accepted.
* Writer : Mehadi Hasan Menon.
* Date : 26.12.16.
**/
#include <iostream>
#include <cstdio>
using namespace std;
const int mx = 105;
char grid[mx][mx];
int n;
int dr[] = {-1, 0, 1, 0};
int dc[] = {0, 1, 0, -1};
void dfs(int r, int c)
{
if(r < 0 || r >= n || c < 0 || c >= n || grid[r][c] == '.')
{
return;
}
grid[r][c] = '.';
for(int i = 0; i < 4; i++)
{
int new_row = r + dr[i];
int new_col = c + dc[i];
dfs(new_row, new_col);
}
}
int main()
{
freopen("input.txt", "r+", stdin);
int tc;
scanf("%d", &tc);
for(int t = 1; t <= tc; t++)
{
scanf("%d", &n);
for(int i = 0; i < n; i++)
{
scanf("%s", grid[i]);
}
int number_of_ships = 0;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
if(grid[i][j] != '.' && grid[i][j] == 'x')
{
dfs(i, j);
number_of_ships += 1;
}
}
}
printf("Case %d: %d\n", t, number_of_ships);
}
return 0;
}
view raw 11953.cpp hosted with ❤ by GitHub

হ্যাপি কোডিং :D

Comments

Popular posts from this blog

উবুন্টুতে রুট পাসওয়ার্ড ভুলে তা রিকভার করার উপায় ।

যদি কেউ রুট পাসওয়ার্ড ভুলে যান তাহলে নিচের কাজ গুলো করে নতুন পাসওয়ার্ড সেট করতে পারবেন: প্রথমে পিসি রিস্টার্ট দিন । দিয়ে UP/DOWN করে kernel version সিলেক্ট করে e চাপুন । ব্ল্যাক Screen আসবে এবার একটা Space দিয়ে লিখুন “Single” [ Enter ] এরপর b চাপুন ফলাফল : লিনাক্সের Single user Mood এ চলে আসছেন । এখন লিখুন passwd root [ Enter ] এখন নতুন পাসওয়ার্ড খানা টাইপ করেন [ এন্টার ] আবার টাইপ করেন [ এন্টার ] কাজ শেষ , এবার reboot টাইপ করেন । এখন নতুন পাসওয়ার্ড দিয়ে লগইন করেন। পুনশ্চ : যদি আপনার উইন্ডোজ এর সাথে ডুয়েল বুট করা থাকে তবে এই প্রক্রিয়া কাজ করবে না ।

Fix The BIOS in this system is not fully ACPI compliant in Windows 7

এই সমস্যা সমাধান করার জন্য আপনি নিচের ধাপ গুলো অনুসরণ করুন। ধাপ ১ :  আপানর  কম্পিউটার এ উইন্ডোজ এর ডিস্ক থেকে বুট করুন । নীচের মত উইন্ডো আসলে Shift + F10 চাপুন । এর ফলে কমান্ড প্রম্প্ট ওপেন হবে। ধাপ ২ : এখন CMD তে নিচের কমান্ড গুলি ধারবাহিক ভাবে লিখুন C: bootrec /FixMbr bootrec /FixBoot bootrec /RebuildBcd exit  এখানে  C হলো যে ড্রাইভ এ উইন্ডোজ দেয়া আছে।  আপনার যদি অন্য কোনো ড্রাইভ ( D, E, F, ..... ) এ উইন্ডোজ দেয়া থাকে তবে আপনাকে C এর জায়গায় সেই ড্রাইভ এর নাম লিখতে হবে।  উপরের সব কমান্ড যদি সঠিক ভাবে বিল্ড হয় তবে আপনি আপনার কম্পিউটার রিস্টার্ট দিন।  দেখবেন আপনার সমস্যা সমাধান হয়ে গেছে :D