Hi there,
The network statement when used with RIP merely tells the router which interfaces should participate in the route distribution.
As RIP, when initially designed was a classful protocol, the router will accept subnets of classful addresses, but will rewrite the subnets to the classful network address in the configuration.
eg, router1(config-router)# network 10.20.20.0
will be seen in the configuration as
router1(config-router)# network 10.0.0.0
and will mean that ALL interfaces that fall within that class A network address will participate in route distribution.
So for your example, the following will get it working with RIP V1
router(config)#router rip
!! 10.0.0.0 class A address!!
router(config-router)#network 10.0.0.0
!! 172.16.0.0 class B address!!
router(config-router)#network 172.16.0.0
!! 199.1.1.0 class C address!!
router(config-router)#network 199.1.1.0
!! 199.1.2.0 class C address!!
router(config-router)#network 199.1.2.0
I hope that answers your question Mate! Just Bear in mind that if you don't want an interface to participate but you need the network statement there for another interface, then you can use the passive-interface command to tell the router not to use that interface.
Regards,
Brad