Задача C1. ОЦЕНКИ

 

На ръководителите на отбори за олимпиадите по програмиране също не им е лесно. Ето в каква ситуация могат да попаднат те. На олимпиадата има два състезателни дни с по три задачи, решението на всяка от които се оценява от 0 до 100 точки, така че резултатът на всеки от тримата състезатели в един отбор е между 0 и 300 точки за всеки ден. За да се запази класирането в тайна до момента на награждаването, не се съобщават сумарните резултати на участниците, но някои ръководители, понякога, успяват да научат получените точки за всеки от двата дни на учениците от N-те противникови отбора, без да знаят кой резултат на кой ученик е. И тогава започват сметките! Като се знае сумарният брой точки X на най-добре представилия се техен ученик, целта е да се пресметне какво може да бъде най-високото му класиране, т.е. на кое място би се наредил сред състезателите от N-те противникови отбора, при най-благоприятното съчетаване на точките от първия и втория ден. Помогнете на такива ръководители. Напишете програма GRADE.EXE, която да пресмята най-доброто възможно класиране на ученика с X точки .

Входните данни ще бъдат зададени на стандартния вход. В първия му ред, разделени с един интервал ще бъдат зададени числата X и N, 3£N£100. Всеки от следващите N реда ще съдържа шестте оценки на състезателите от поредния отбор, разделени с по един интервал. Първите три числа са оценките на тримата състезатели от първия ден, а следващите три – от втория ден.   

На стандартния изход програмата трябва да изведе намереното най-добро възможно класиране на “нашия” ученик. Ако един резултат на противников състезател от двата дни е равен на X, ще считаме че нашият ученик ще бъде класиран преди съответния противник, имащ същия резултат. 

 

ПРИМЕР

 

Вход                                                           Изход

421 3                          1

124 288 67 133 154 200

12 201 300 220 76 123

84 112 106 200 99 99


 

 

 

            Задача C2. ЧИСЛОВИ КВАДРАТИ

 

Напишете програма SQUARE.EXE, която представя цялото положително число N като сума от възможно най-малко на брой точни числови квадрати.

 

Програмата трябва да въведе стойността на N (N<105) от стандартния вход.

 

 На един ред в стандартния изход програмата трябва да изведе  намереният брой на точните числови квадрати, чиято сума е равна на N, а след това и самите числови квадрати, разделени с по един интервал. Ако задачата има няколко решения, трябва да се изведе едно от тях.

 

ПРИМЕР

 

Вход

 

10

 

Изход

 

2 1 9


 

 

 

            Задача C3. ПРОСТИ ЧИСЛА

 

          Учителят в школата по математика написал на дъската няколко прости числа, по-малки от 1000, но не оставил интервали между отделните числа. Учениците трябвало да открият кои са числата.

            Помогнете на своите приятели, като напишете програма PRIMES.EXE, която въвежда низ от най-много 30 цифри и извежда всички начини, по които може да се получи този низ, чрез долепване на едно или повече прости числа, по-малки от 1000.

Низът се въвежда от стандартния вход, а резултатът трябва да се изведе на стандартния изход. Всяко намерено решение трябва да се изведе на отделен ред, а числата в реда да бъдат разделени с по един интервал. Не се допускат числа с първа цифра нула. Решенията трябва да бъдат подредени лексикографски (това означава по първото число във всеки ред, а когато първите числа съвпадат ­­– по вторите и т.н.).

 

 

ПРИМЕР

 

Вход

 

373

 

Изход

 

3 7 3

3 73

37 3

373