Monday, February 22, 2016

UVA 10038 - Jolly Jumpers

প্রব্লেমঃ N সংখ্যক ইন্টেজার সিকুয়েন্স দেওয়া আছে। বের করতে হবে সিকিউয়েন্সটি Jolly বা Jolly নয় কিনা। যদি সিকিউয়েন্সটির প্রতিটি এলিমেন্ট এর পার্থক্য বের করলে N থেকে N-1 পর্যন্ত সবগুলো নাম্বার  পাওয়া যায় তখন তা Jolly নাম্বার অন্যথায় Jolly নাম্বার নয়।

এক্সাম্পল্ঃ প্রথম টেস্ট কেসে N= 4 এবং 4 টা ইন্টেজার সিকিউয়েন্স দেওয়া আছে এদের পার্থক্য যথাক্রমে 3 2 1 , যেহেতু এটি N থেকে N-1 পর্যন্ত সবগুলো সংখ্য আছে সেহেতু এটি একটি Jolly নাম্বার।

প্রথমে নিজে চেষ্টা কর তারপর  কোড দেখো।

কোডঃ

 #include <bits/stdc++.h>  
 #include <stdio.h>  
 #include <math.h>  
 using namespace std; 

 int main(){  
   int n, diff, i, j;  
   int numbers[3001];  
   bool check[3001];  

   while(scanf("%d",&n)!=EOF)  
   {  
     for(j= 0;j<n;j++)  
       check[j] = false;  
     int flag =0;  
     for(i= 0;i<n;i++)  
       scanf("%d",&numbers[i]);  
     for(i= 0;i<n-1;i++)  
     {  
       diff = numbers[i+1]-numbers[i];  
       diff = abs(diff);  
       check[diff] = true;  
     }  

     for(i= 1;i<n;i++)  
     {  
       if(check[i] == false)  
       {  
          flag =1;  
          break;  
       }  
     }  

     if(flag == 0)  
       printf("Jolly\n");  
     else  
       printf("Not jolly\n");  
   }  
  return 0;  
 }