#include <iostream>

int main (int argc, char * const argv[])
{

   int n = -2353252;
   std::cout << "n  =  " << n << std::endl;

   unsigned int u = (unsigned int)(int)(double)n;
   std::cout << "(unsigned int)(int)(double)n  =  " << u << std::endl;

   // FAIL
   u = (unsigned int)(double)n;
   std::cout << "(unsigned int)(double)n  =  " << u << std::endl;

   u = (unsigned int)(int)(float)n;
   std::cout << "(unsigned int)(int)(float)n  =  " << u << std::endl;

   // FAIL
   u = (unsigned int)(float)n;
   std::cout << "(unsigned int)(float)n  =  " << u << std::endl;
   


   return 0;
}

