Sunday 26 April 2015

Solution Hints for Light oj 1008...



প্রথমে আমরা কিছু অংশে ভাগ করি।
১-৪ পর্যন্ত, ৫-৯ পর্যন্ত, ১০-১৬...
১-৪ এর ক্ষেত্রে...
৪ এর বর্গমূল মান=২ ।  বাকি ১,২,৩ কে বর্গমূল করে ceiling করলে মান হয় ২ ।
৫-৯ এর ক্ষেত্রে...
৯ এর বর্গমূল ৩ । বাকি  ৫,৬,৭,৮ কেও বর্গমূল করে ceiling করলে মান হয় ৩ ।
যদি চিত্রের নিচ থেকে row and column হিসেব করি...
এখানে একটা বিষয় লক্ষ্য করলে দেখা যাবে যে ৫-৯ থেকে আমরা ৩ পাই । এই ৩ হচ্ছে ৫-৯ এর row অথবা column মান ।
যেহেতু মান ৩ ,তাই ৯ থেকে ৩ টি সংখ্যা র জন্য row মান ৩...(৯,৮,৭)। ৬ ও ৫ এর ক্ষেত্রে কলাম এর মান ৩ হবে ।
এটা বের করার জন্য ( n*n-s<n) এই সূত্র ব্যবহার করা হয়েছে ।এই ক্ষেত্রে এটা সত্য হবে কেবলমাত্র ৯,৮,৭ এর জন্য এবং ৯,৮,৭ এর    হবে ৩ । এর কলাম এর ক্ষেত্রে দেখতে পাচ্ছি যে ৯ আছে ১ নং কলাম এ ,৮ আছে ২ নং কলাম এ, ৭আছে ৩ নং কলাম এ...
আমরা যদি ৯-৯=০ , ০+১=১...যা ৯ এর কলাম।। আবার ৯-৮=১ , ১+১=২..   যা ৮ এর কলাম।। আবার ৯-৮=১ , ১+১=২.. যা ৮ এর কলাম।।
আশা করি আপনি মোটামুটি বুঝতে পেরেছেন । ধন্যবাদ।

Saturday 25 April 2015

C solution for light oj 1006...

#include<stdio.h>
int main() {
long long int n,i,t,test=1, cases;
scanf("%lld",&t);
long long int ara[100000];
while( t--) {

for(i=0;i<=5;i++){
scanf("%lld",&ara[i]);}
scanf("%lld",&n);
for(i=6;i<=n;i++){
    ara[i]=(ara[i-1]+ara[i-2]+ara[i-3]+ara[i-4]+ara[i-5]+ara[i-6])%10000007;
}
printf("Case %lld: %lld\n",test++, ara[n]% 10000007);
}
return 0;
}

C++ solution for light oj 1212...

#include<cstdio>
#include<sstream>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<algorithm>
#include<set>
#include<queue>
#include<deque>
#include<stack>
#include<list>
#include<iostream>
#include<fstream>
#include<numeric>
#include<string>
#include<vector>
#include<cstring>
#include<map>
#include<iterator>
using namespace std;

int main()
{
    int test,t=1,n,m,number;
    cin>>test;
    while(test--){
            printf("Case %d:\n",t++);
        cin>>n>>m;
        deque<int>q;
        string s;

    while(m--){
    cin>>s;
    if(s=="pushLeft"){
        cin>>number;
        if(q.size()!=n){
               q.push_front(number);
             cout<<"Pushed in left: "<<number<<endl;

        }
        else
            cout<<"The queue is full"<<endl;
    }
    else if(s=="pushRight"){
        cin>>number;
        if(q.size()!=n){
               q.push_back(number);
             cout<<"Pushed in right: "<<number<<endl;

        }
        else
            cout<<"The queue is full"<<endl;
    }
   else if(s=="popLeft"){
        if(q.empty())cout<<"The queue is empty"<<endl;
        else{
            cout<<"Popped from left: "<<q.front()<<endl;
            q.pop_front();
        }

    }
    else if(s=="popRight"){
          if(q.empty())cout<<"The queue is empty"<<endl;
        else{
            cout<<"Popped from right: "<<q.back()<<endl;
            q.pop_back();
        }
    }
    }
    }





}

Friday 24 April 2015

C++ solution for light oj-1113

#include <algorithm>
#include <iostream>
#include <iterator>
#include <numeric>
#include <cassert>
#include <sstream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <utility>
#include <complex>
#include <iomanip>
#include <limits>
#include <string>
#include <cctype>
#include <cstdio>
#include <vector>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <cmath>
#include <deque>
#include <list>
#include <set>
#include <map>
using namespace std;

main()
{
    int test,t=1;
    cin>>test;
  while(test--)
    {
        printf("Case %d:\n",t++);
        string str,x,temp,y;
        stack<string>s1;
        stack<string>s2;
        x="http://www.lightoj.com/";

        s1.push(x);
        while(cin>>y)
        {

            if(y=="QUIT") break;

              if(y=="VISIT"){
               cin>>x;
                cout<<x<<endl;
             s1.push(x);
              if(!s2.empty())
              {
                  while(!s2.empty())
                    s2.pop();
              }
            }
            else
            {
                if(y=="BACK")
                {
                    temp=s1.top();
                    s2.push(temp);
                    s1.pop();
                    if(!s1.empty()){
                     cout<<s1.top()<<endl;
                    }
                    else{
                     cout<<"Ignored"<<endl;
                     temp=s2.top();
                     s1.push(temp);
                     s2.pop();
                    }
                }
                else if(y=="FORWARD")
                {
                    if(!s2.empty())
                    {
                        cout<<s2.top()<<endl;
                        temp=s2.top();
                        s1.push(temp);
                        s2.pop();
                    }
                    else
                    {
                       cout<<"Ignored"<<endl;
                    }
                }
            }
        }
    }

    return 0;
}