Light OJ Solution Algorithm
1000 - Greetings from LightOJ
You are one of the most talented programmers and like to solve challenging problems. And my task is to make your life a bit complex by setting some easy looking hard brain storming problems such that you can sharpen your skills by practicing here. So, I wrote a code which shows a message like the following line:
Greetings from LightOJ
After that the code will select a random problem for you from my problems database based on your previously solved problems, your skills and your weaknesses. But while I was coding for implementing this great idea, I found that, all of my problems are scattered in 2 computers. So, I have to merge them before running my code.
Now you are given the number of problems in each of the computers, you have to find the total number of problems. You can safely assume that no problem is stored in multiple computers. So, all the problems are distinct.
Input
Input starts with an integer T (≤ 125), denoting the number of test cases.
Each case starts with a line containing two integers a and b. a denotes the number of problems in the first computer and b denotes the number of problems in the second computer. You can safely assume that a and b will be non-negative and not greater than 10.
Output
For each case, print the case number and the total number of problems. See the samples for exact formatting.
Sample Input | Output for Sample Input |
2 1 7 9 8 | Case 1: 8 Case 2: 17 |
এখানে বলা হয়েছে যে, ২ টি কম্পিউটার এর মধ্যে কিছু সমস্যার নমুনা সেভ করা আছে। আমাদেরকে শুধুমাত্র এদের যোগফল বের করতে হবে।
$so,what we have to do is simple print sum of total distinct problem. sum = a + b
Algorithm: simple input output
1. input term
2. using a loop count term. 0<i<term
2.input two integer value and calculate sum of two number.
3.print result.
4.repeat from 2 to 3.
sample code :
-------------------------------------------------------------------------------------------------------------------------------------
int term,a,b,sum;
scanf("%d",&term); //step 1
int i;
for(i=0;i<term;i++){ // step 2
scanf("%d%d",&a,&b); // step 3
sum=a+b; // step 3
printf("Case %d: %d\n",i+1,sum); //step 4
----------------------------------------------------------------------------------------------------------------------------
1001 - Opposite Task
This problem gives you a flavor the concept of special judge. That means the judge is smart enough to verify your code even though it may print different results. In this problem you are asked to find the opposite task of the previous problem.
To be specific, I have two computers where I stored my problems. Now I know the total number of problems is n. And there are no duplicate problems and there can be at most 10 problems in each computer. You have to find the number of problems in each of the computers.
Since there can be multiple solutions. Any valid solution will do.
Input
Input starts with an integer T (≤ 25), denoting the number of test cases.
Each case starts with a line containing an integer n (0 ≤ n ≤ 20) denoting the total number of problems.
Output
For each case, print the number of problems stored in each computer in a single line. A single space should separate the non-negative integers.
Sample Input |
Output for Sample Input |
3 10 7 7 |
0 10 0 7 1 6 |
এখানে যেটা বলা হইছে যে টোটাল n সংখক প্রবলেম কে ইনপুট নিতে হবে। তার পর সেই n সংখক প্রবলেম কে ২টি কম্পিউটার এর মধ্যে ভাগ করে দিতে হবে। প্রত্যেক কম্পিউটার ১০ টির বেশি প্রবলেম স্টোর করে রাখতে পারবে না। [১]যেহেতু একটি কম্পিউটার ১০ টির বেশি রাখতে পারবেনা তাই n এর মান সর্বোচ্চ ২০ হতে পারে। [২]আবার n এর মান ০ হতে পারে। ১ম ক্ষত্রে আমরা যেটা করতে পারি তা হল n=২০ হলে ১০ ১০ প্রিন্ট করা। আর ২ য় ক্ষত্রে আমরা ০ ০ প্রিন্ট করব। [৩] n এর মান মান ১০ এর নিচে হলে কি করতে পারি। ২ দিয়ে ভাগ?! এখানে একটি প্রবলেম আছে। n =১০ রিপিট করলে বার বার ৫ ৫ প্রিট করবে আবার বেজোড় সংখা কে ত আর ২ দিয়ে নিঃশেষে ভাগ করা সম্ভব নয়। ত আমরা যেটা করতে পারি তা হল ১ম এ একটি কম্পিউটার এ ০ রেখে আপরটিতে n রাখতে পারি।এখেনে বলা নেই যে সমান ভাগে ভাগ করতে হবে। আর এটও বলা নেই যে এর মান ০ হতে পারবেনা। এর পর n সংখাটির frequency অ্যারে তে স্টোর করে রাখেতে পারি মানে n=১০ হলে ১০ তম ইনডেক্সে ১ ইনপুট করব আবার n=১০ হলে ১০ তম ইনডেক্সে ২ ইনপুট করব। ত একটি কম্পিউটারে আমরা (১০-২)=৮ আরেক কম্পিউটারে আমরা ২ রাখতে পারি। এতে n সংখাটি জোড় বেজোড় হলে কোন প্রব্লেম হবে না। n এর মান ১০ এর বেশি হলে কি হবে। নিয়ম একই তবে একটু পরিবতন করতে হবে। কারন প্রত্যেক কম্পিউটার ১০ টির বেশি প্রবলেম স্টোর করে রাখতে পারবে না। n=১৫ হলে ০, ১৫ প্রিন্ট করলে এটা ভুল হবে। ত আমরা যা করব তা হল answer =|(১০-frequency)-n|, (১০-frequency) ।
A circle is placed perfectly into a square. The term perfectly placed means that each side of the square is touched by the circle, but the circle doesn't have any overlapping part with the square. See the picture below.
Now you are given the radius of the circle. You have to find the area of the shaded region (blue part). Assume that pi = 2 * acos (0.0) (acos means cos inverse).
Input
Input starts with an integer T (≤ 1000), denoting the number of test cases.
Each case contains a floating point number r (0 < r ≤ 1000) denoting the radius of the circle. And you can assume that r contains at most four digits after the decimal point.
Output
For each case, print the case number and the shaded area rounded to two places after the decimal point.
Sample Input |
Output for Sample Input |
3 20 30.091 87.0921 |
Case 1: 343.36 Case 2: 777.26 Case 3: 6511.05 |
Note
int term,i; | |
double radious,length; | |
scanf("%d",&term); | |
for(i=0;i<term;i++){ | |
scanf("%lf",&radious); | |
length=radious*2; | |
printf("Case %d: %.2lf\n",i+1,(length*length)-(2*acos(0.0)*radious*radious)); | |
No comments