- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
int wc,cnt=0,maxp=0,minp=2147483647,maxn=-2147483648,minn=0,pos=0,neg=0,zf=0;
fstream(f);
f.open("input.txt",ios::in);
while (!f.eof())
{
if(!zf) zf--;
wc=0;
f >>wc;
if (wc>0) { if (maxp<wc) maxp=wc; if (minp>wc) minp=wc; pos++; }
else {if (minn>wc) minn=wc; if (maxn<wc&&wc)maxn=wc; if (!wc) zf+=2; else neg++; }
}
if (pos>1 && neg>1)
if ((float)maxp/minp > (float)minn/maxn) cout<<maxp<<"/"<<minp<<"="<<(float)maxp/minp;
else cout<<minn<<"/"<<maxn<<"="<<(float)minn/maxn;
if (pos>1 && neg<2) cout<<maxp<<"/"<<minp<<"="<<(float)maxp/minp;
if (pos<2 && neg>1) cout<<minn<<"/"<<maxn<<"="<<(float)minn/maxn;
if (pos<=1 && neg<=1)
if(zf) if(pos) cout<<"0/"<<minp<<"=0";else cout<<"0/"<<minn<<"=0";
else if ((float)maxp/maxn>(float)maxn/maxp)cout<<maxp<<"/"<<maxn<<"="<<(float)maxp/maxn;
else cout<<maxn<<"/"<<maxp<<"="<<(float)maxn/maxp;
if (pos+neg+zf<=1) cout<<"No solution!";
f.close();
getch();
return 0;
}
Задача 2-ого курса: "в массиве целых числел найти два таких числа, чтобы их частное было максимальным ( O(n) )"
И ее решение -.- Особо доставляет название переменных
по теме:
деление макс. числа на мин. число одного знака из массива даст наибольшее частное
ну и что?
засиженный эмарями (sp?)
http://lingvo.yandex.ru/recept/%D1%81%20%D0%B0%D0%BD%D0%B3%D0%BB%D0%B8% D0%B9%D1%81%D0%BA%D0%BE%D0%B3%D0%BE/
не говоря уже о первой части названия сайта.