Problem Link:UVA 11723 - Numbering Roads
Hints :
তোমাকে রাস্তার সংখ্যা এবং রাস্তার নাম দেয়ার জন্য ১ থকে n পর্যন্ত সংখ্যা এবন a থেকে z পর্যন্ত অক্ষর দেওয়া আছে তোমাকে রাস্তার নাম ঠিক করতে বলা হয়েছে।
মনে করি n এর মান ৫ এবং রাস্তার সংখ্যা ২০ টি। তবে কি ভাবে রাস্তার নাম ঠিক করবে তাই না?
নাম ঠিক করার জন্মে এখানে একটি অক্ষর এবং একটি সংখ্যা ব্যাবহার করতে বলা হয়েছে।
এক্ষেত্রে নাম গুল হবে
1a,2a,3a,4a,5a,2a,2b,2c,2d,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1z,2z,3z,4z,5z;
এখানে সরব নিম্ন কয়টি অক্ষর লাগবে তা বের করতে বলা হয়েছে,।
যেহেতু n এর মান ৫ সেহেতু কোন অক্ষর ছাতাই ৫ টি নাম ঠিক করা যায়।
যথা ১,২,৩,৪,৫
তাহলে আর বাকি থাকে ২০-৫=১৫ টি রাস্তা।
সুতরাং ১৫ টি রাস্তার নাম ঠিক করতে ১৫/৫=৩ টি অক্ষর লাগে।
বিঃদ্রঃ কিন্তু যদি ১৫ এর পরিবরতে ১৬ হত তবে ১৬/৩=৩ হলেও ভাগশেষ থাকে সেহেতু একটি অক্ষর বেসি অর্থাৎ ৩+১=৪ টি অক্ষর প্রয়োজন পরবে।
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,s,s1,s3,ans,i=1;
while(cin>>a>>b)
{
if(a==0&&b==0)
break;
s=a-b;
// cout<<"s="<<s<<endl;
s1=s/b;
//cout<<s1<<endl;
s3=s%b;
if(s3>0)
s1=s1+1;
if(s1>26)
cout<<"Case "<<i<<": impossible"<<endl;
else
cout<<"Case "<<i<<": "<<s1<<endl;
i++;
}
return 0;
}
Hints :
তোমাকে রাস্তার সংখ্যা এবং রাস্তার নাম দেয়ার জন্য ১ থকে n পর্যন্ত সংখ্যা এবন a থেকে z পর্যন্ত অক্ষর দেওয়া আছে তোমাকে রাস্তার নাম ঠিক করতে বলা হয়েছে।
মনে করি n এর মান ৫ এবং রাস্তার সংখ্যা ২০ টি। তবে কি ভাবে রাস্তার নাম ঠিক করবে তাই না?
নাম ঠিক করার জন্মে এখানে একটি অক্ষর এবং একটি সংখ্যা ব্যাবহার করতে বলা হয়েছে।
এক্ষেত্রে নাম গুল হবে
1a,2a,3a,4a,5a,2a,2b,2c,2d,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1z,2z,3z,4z,5z;
এখানে সরব নিম্ন কয়টি অক্ষর লাগবে তা বের করতে বলা হয়েছে,।
যেহেতু n এর মান ৫ সেহেতু কোন অক্ষর ছাতাই ৫ টি নাম ঠিক করা যায়।
যথা ১,২,৩,৪,৫
তাহলে আর বাকি থাকে ২০-৫=১৫ টি রাস্তা।
সুতরাং ১৫ টি রাস্তার নাম ঠিক করতে ১৫/৫=৩ টি অক্ষর লাগে।
বিঃদ্রঃ কিন্তু যদি ১৫ এর পরিবরতে ১৬ হত তবে ১৬/৩=৩ হলেও ভাগশেষ থাকে সেহেতু একটি অক্ষর বেসি অর্থাৎ ৩+১=৪ টি অক্ষর প্রয়োজন পরবে।
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,s,s1,s3,ans,i=1;
while(cin>>a>>b)
{
if(a==0&&b==0)
break;
s=a-b;
// cout<<"s="<<s<<endl;
s1=s/b;
//cout<<s1<<endl;
s3=s%b;
if(s3>0)
s1=s1+1;
if(s1>26)
cout<<"Case "<<i<<": impossible"<<endl;
else
cout<<"Case "<<i<<": "<<s1<<endl;
i++;
}
return 0;
}
No comments:
Post a Comment