Cod sursa(job #956424)

Utilizator burakbugrulBurak Bugrul burakbugrul Data 3 iunie 2013 09:40:58
Problema NumMst Scor 1
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <cstdio>
#include <iostream>
#include <vector>

#define pb push_back

using namespace std;

int N,res;

vector<int> vec;

int gcd( int a , int b ){
	
	if( b==0 )
		return a;
	
	return gcd(b,a%b);
}

int main(){
	
	freopen("nummst.in","r",stdin);
	freopen("nummst.out","w",stdout);
	
	int a,b;
	
	scanf(" %d",&N);
	
	for( int i=1 ; i<=N ; i++ )
		for( int j=i ; j<=N ; j++ )
			if( i+j==N && gcd(i,j)>res ){
				res=gcd(i,j);
				vec.clear();
				vec.pb(i);	
				vec.pb(j);	
			}
	
	for( int i=1 ; i<=N ; i++ )
		for( int j=i ; j<=N ; j++ )
			for( int k=j ; k<=N ; k++ )
				if( i+j+k==N && gcd(gcd(i,j),k)>res ){
					gcd(gcd(i,j),k);
					vec.clear();
					vec.pb(i);
					vec.pb(j);
					vec.pb(k);
				}
	
	for( int i=1 ; i<=N ; i++ )
		for( int j=i ; j<=N ; j++ )
			for( int k=j ; k<=N ; k++ )
				for( int l=k ; l<=N ; l++ )
					if( i+j+k+l==N && gcd(gcd(i,j),gcd(k,l))>res ){
						res=gcd(gcd(i,j),gcd(k,l));
						vec.clear();
						vec.pb(i);
						vec.pb(j);
						vec.pb(k);
						vec.pb(l);
					}
	
	for( vector<int>::iterator it=vec.begin() ; it!=vec.end() ; it++ )
		printf("%d ",*it);
	return 0;
}