Analiza programów

17.06.2009

Współdzielenie plików

#include <cstdio>
 
using namespace std;
 
int main(int argc, char** argv)//REV: nieużywane zmienne
{//REV: za duży scope zmiennych tymczasowych
	int hosts;
	int pendrives;
	int queries;
	int power;
	int time;
	int res; 
 
	scanf("%d", &queries);
 
	for(int q = 0; q < queries; ++q)
	{
		scanf("%d%d", &hosts, &pendrives);
 
		power = 1;
		time  = 0;
 
		if(hosts > pendrives)
		{
			while(power < pendrives)
			{
				power <<= 1;
				++time;
			}
 
			if(power != pendrives) power >>= 1; //REV: to może w while'u dopisać "=" i usunšć tego ifa?
 
			res   = (hosts - power) / pendrives;
			time += res;
			if(pendrives * res != hosts - power) ++time;
		}
		else
		{
			while(power < hosts) //REV: zduplikowana logika, a co ważniejsze, chyba da się stablicować conieco
			{
				power <<= 1;
				++time;
			}
		}
 
		printf("%d\n", time);
	}
 
	return 0;
}
 

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com