Cod sursa(job #585326)

Utilizator NikitaUtiuNichita Utiu NikitaUtiu Data 28 aprilie 2011 21:43:49
Problema Dreptunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <iostream>
using namespace std;

int n, m;
long long rasp;

void read(void);
void solve(void);
void write(void);

int main(void) {
	read();
	solve();
	write();
	return 0;
}

void read(void) {
	ifstream fin("dreptunghiuri.in");
	fin >> n >> m;
	fin.close();
}

void write(void) {
	ofstream fout("dreptunghiuri.out");
	fout << rasp;
	fout.close();
}

void solve(void) {
	int lat, inalt;
	for(int x = 1; x < m; ++x) { // cat merge orizontal segmentul 
		for(int l = 1; l < n; ++l) {
			rasp += (m - x) * (n - l);
		}
		for(int y = 1; x + y < n && x + y < m; ++y) // cat urca segmentul
	    // latimea si inaltimea unui dr cu coeficient 1 trebuie sa se incadreze in matrice
			for(int l = 1; x + y * l < m && y + x * l < n; ++l) { // coeficientul lungimii segmentelor laterale
				lat = x + y * l;
				inalt = y + x * l;
				rasp += (m - lat) * (n - inalt);
			}		
	}
}