Skip to main content

[ UVa ] 11749 - Poor Trade Advisor.

  • আমরা ইনপুট নেয়ার সময়ই max_ppa এর মান বের করবো ।
  • এখন ১ নং শহর থেকে যাত্রা শুরু করে n পর্যন্ত সব শহরেই যাব যদি না সেই শহর এ আমরা আগে কখনো গিয়ে থাকি। 
  • আমরা কোন একটা শহর থেকে যাত্রা শুরু করলে ওই শহর থেকে যতগুলি শহরে যাওয়া যায় তার সবগুলি তে যাওয়ার জন্য চেষ্টা করবো 
  • যদি একটা শহর u থেকে v তে যেতে PPA এর মান max_ppa এর সমান না হয় তবে আমরা সেই রাস্তাটা কে বাদ দিয়ে continue করবো । 
  • কোন এটা শহর থেকে যাত্রা শুরু করলে মোট কয়টা শহরে যাওয়া যায় সেটা number_of_city তে জমা করে রাখব । 
  • শেষে ম্যাক্সিমাম number_of_city ই হল আমাদের মহান সিজার সাহেবের Provience [ উপনিবেশ ] । যেটা খুজে বের করার জন্য তিনি অস্থির হয়ে গেছেন :P 
 কোড করার আগে :
  • আমাদের যদি একই road কয়েক বার ইনপুট দেয় এবং তাদের PPA যদি আলাদা আলাদা হয় যেমন : [ a, b ] = 10,  [ b, a ] = 20,  [ a, b ] = -111 তবে আমাদের কে ম্যাক্সিমাম PPA [ a, b ]=  20 কে নিতে হবে । 
  • PPA of that road [ fits in a signed 32 bit variable ] তার মানে PPA কিন্তু নেগেটিভ হতে পারে । তাই max_ppa এর মান শুরুতে -2147483648 দিতে হবে । শূন্য দিলে WA খেতে হবে ;)
কোড :

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

Comments

Popular posts from this blog

  Good becomes great, bad becomes worse. A strong man who has known power all his life can lose respect for that power, but a weak man knows the value of strength and knows compression

Finding digit number of a number

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include<stdio.h> int main() { long long int a,b, sum ,temp,count = 0 ,count_1 = 1 ; while ( (scanf( "%lld %lld" , & a, & b)) != EOF) { if (a <= 1000000 && b <= 1000000 ) { sum = a + b; temp = sum ; while (temp != 0 ) { sum /= 10 ; temp = sum ; count ++ ; } printf( "%lld \n " ,count); } count = 0 ; if (count_1 > 200 ) break ; count_1 ++ ; } return 0 ; }