/*
ID: kuzux921
PROG: numtri
LANG: C++
*/
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
ofstream out ("numtri.out");
ifstream in ("numtri.in");
int rows; in >> rows;
vector < vector<int> > triangle;
for(int i=0;i<rows;i++){
vector<int> tmp;
triangle.push_back(tmp);
for(int j=0;j<=i;j++){
int n; in >> n;
triangle[i].push_back(n);
}
}
for(int i=triangle.size()-2;i>=0;i--){
for(int j=0;j<=i;j++){
triangle[i][j] += max(triangle[i+1][j],triangle[i+1][j+1]);
}
}
out << triangle[0][0] << endl;
return 0;
}
Bu da yine aynı yerden frac1 sorusu;
/*
ID: kuzux921
PROG: frac1
LANG: C++
*/
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
struct Fraction{
int num;
int den;
};
inline double value(const Fraction& frac){
return ((double)frac.num)/((double)frac.den);
}
void search(int limit, vector< vector<bool> > matrix, vector<Fraction>& res){
Fraction def; def.den = def.num = 1;
res.push_back(def);
def.num = 0;
res.push_back(def);
for(int i=2;i<=limit;i++){
for(int j=1;j<i;j++){
if(!matrix[i][j]) continue;
Fraction tmp;
tmp.num = j;
tmp.den = i;
res.push_back(tmp);
for(int k=2;k<=limit/i;k++){
matrix[i*k][j*k] = false;
}
}
}
}
bool sortr(const Fraction& f1, const Fraction& f2){
return value(f1) < value(f2);
}
int main(){
ofstream out ("frac1.out");
ifstream in ("frac1.in");
int limit; in >> limit;
vector<Fraction> res;
vector< vector<bool> > matrix;
matrix.resize(limit+1);
for(int i=2;i<=limit;i++){
matrix[i].resize(i+1);
for(int j=1;j<i;j++){
matrix[i][j] = true;
}
}
search(limit,matrix,res);
sort(res.begin(),res.end(),sortr);
for(unsigned int i=0;i<res.size();i++) out << res[i].num << "/" << res[i].den << endl;
return 0;
}

Hiç yorum yok:
Yorum Gönder