Ogni anno l’università organizza una competizione a squadre di informatica. Ogni squadra
è composta da tre studenti.
Tradizionalmente le migliori sono sempre state le ragazze, che quindi partecipavano in
sovrannumero rispetto al numero di ragazzi a questa competizione. Quest’anno i ragazzi con le loro
proteste hanno fatto approvare una regola: ogni squadra deve essere composta da esattamente 1
ragazzo e 2 ragazze.
Per rendere l’organizzazione della competizione ancora più difficile, il preside della scuola ha
deciso che dovranno essere mandati K dei ragazzi (maschi o femmine) che si erano iscritti alla gara
in uno stage all’estero. Questi K ragazzi non potranno ovviamente fare parte di nessuna squadra,
non potendo partecipare alla gara.
Definito come M il numero di ragazze iscritte alla gara, con N il numero di ragazzi (maschi) iscritti
alla gara e con K il numero di ragazzi (maschi o femmine) che, scelti tra gli N + M ragazzi iscritti
alla gara, dovranno essere mandati allo stage all’estero, si determini qual è il massimo numero di
squadre che si possono iscrivere alla gara.
Per esempio se M è 6, N è 3 e K è 2, il preside può mandare una ragazza e un ragazzo (maschio)
allo stage, così rimangono 5 ragazze e 2 ragazzi. Allora si potranno iscrivere alla gara due squadre
(e una ragazza sarà lasciata senza squadra).
INPUT (input.txt)
La prima e unica riga dell’input contiene tre numeri, separati da uno spazio: M ( 0 <= M <= 100), il
numero di ragazze, N (0 <= N <= 100), il numero di ragazzi e K (0 <= K <= M+N), il numero di
iscritti alla gara che devono essere mandati in uno stage.
OUTPUT (output.txt)
L’output dovrà contenere un solo numero: il numero massimo di squadre che possono essere
composte.
input.txt input.txt input.txt
6 3 2 2 1 1 6 10 3
output.txt output.txt output.txt
2 0 3
Semplicemente dividendo il numero di ragazze a metà, la differenza fra ragazze/2 e ragazzi saranno gli alunni partecipanti allo stage, coi rimanenti si formano le squadre:
|
1<br /> 2<br /> 3<br /> 4<br /> 5<br /> 6<br /> 7<br /> 8<br /> 9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39 |
|
|
<span style="color: #009999;">#include <iostream></span><br /><span style="color: #009999;">#include <cstdlib></span><br /><span style="color: #009999;">#include <fstream></span><br /><br /><span style="color: #006699; font-weight: bold;">using</span> <span style="color: #006699; font-weight: bold;">namespace</span> std;<br /><br /><span style="color: #007788; font-weight: bold;">int</span> <span style="color: #cc00ff;">main</span>(){<br /> ifstream in (<span style="color: #cc3300;">"input.txt"</span>);<br /> ofstream out (<span style="color: #cc3300;">"output.txt"</span>);<br /> <br /> <span style="color: #007788; font-weight: bold;">int</span> m,n,k,diff;<br /> <br /> in<span style="color: #555555;">>></span>m<span style="color: #555555;">>></span>n<span style="color: #555555;">>></span>k;<br /> <br /> diff<span style="color: #555555;">=</span> m<span style="color: #555555;">-</span> <span style="color: #ff6600;">2</span><span style="color: #555555;">*</span>n;<br /> <br /> <span style="color: #006699; font-weight: bold;">if</span> (diff <span style="color: #555555;">></span><span style="color: #ff6600;">0</span>){<br /> k <span style="color: #555555;">-=</span> diff;<br /> <span style="color: #006699; font-weight: bold;">if</span> (k<span style="color: #555555;"><</span><span style="color: #ff6600;">0</span>){diff<span style="color: #555555;">+=</span>k;k<span style="color: #555555;">=</span><span style="color: #ff6600;">0</span>;}<br /> m<span style="color: #555555;">-=</span>diff;}<span style="color: #006699; font-weight: bold;">else</span>{<br /> k <span style="color: #555555;">+=</span> diff;<br /> <span style="color: #006699; font-weight: bold;">if</span> (k<span style="color: #555555;"><</span><span style="color: #ff6600;">0</span>){diff<span style="color: #555555;">-=</span>k;k<span style="color: #555555;">=</span><span style="color: #ff6600;">0</span>;}<br /> n <span style="color: #555555;">+=</span> diff;}<br /> <br /> diff <span style="color: #555555;">=</span> k<span style="color: #555555;">/</span><span style="color: #ff6600;">3</span>;<br /> k <span style="color: #555555;">-=</span> <span style="color: #ff6600;">3</span><span style="color: #555555;">*</span>diff;<br /> <span style="color: #006699; font-weight: bold;">if</span> (k<span style="color: #555555;"><</span><span style="color: #ff6600;">0</span>){diff<span style="color: #555555;">+=</span>k;k<span style="color: #555555;">=</span><span style="color: #ff6600;">0</span>;}<br /> m <span style="color: #555555;">-=</span> <span style="color: #ff6600;">2</span><span style="color: #555555;">*</span>diff;<br /> n <span style="color: #555555;">-=</span> diff;<br /> <br /><span style="color: #006699; font-weight: bold;">if</span> (k<span style="color: #555555;">></span><span style="color: #ff6600;">0</span>)<br /><span style="color: #006699; font-weight: bold;">if</span> (<span style="color: #ff6600;">2</span><span style="color: #555555;">*</span>n <span style="color: #555555;">></span> m)<br />n<span style="color: #555555;">-=</span>k;<br /><span style="color: #006699; font-weight: bold;">else</span><br />m<span style="color: #555555;">-=</span>k;<br /><br />out <span style="color: #555555;"><<</span> min(n,m<span style="color: #555555;">/</span><span style="color: #ff6600;">2</span>);<br /> <br /> <span style="color: #006699; font-weight: bold;">return</span> <span style="color: #ff6600;">0</span>;}<br /> |
|