Cod sursa(job #1848701)
Utilizator | Data | 16 ianuarie 2017 15:29:28 | |
---|---|---|---|
Problema | Transport | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.53 kb |
#include <iostream>
#include <cstdio>
int v[16001];
int main()
{
FILE *intrare,*iesire;
int n,transport,i,x,max=-1,copiemax=0,copietr=0,num=0;
bool ok=true;
intrare=fopen("transport.in","r");
iesire=fopen("transport.out","w");
fscanf(intrare,"%d%d",&n,&transport);
for (i=0; i<=n-1; ++i)
{
fscanf(intrare,"%d",&v[i]);
}
for (i=0; i<=n-1; ++i)
{
if (v[i]>max)
max=v[i];
}
copiemax=max;
copietr=transport;
while (ok==true)
{
num++;
for (i=0; i<=n-1; ++i)
{
if (max-v[i]==0)
{
if (max==copiemax)
--transport;
else
{
max=max-v[i];
}
}
else
{
if (max-v[i]>0)
{
if (max==copiemax)
--transport;
max=max-v[i];
}
else
{
if (max-v[i]<0)
{
max=copiemax;
--transport;
max=max-v[i];
}
}
}
}
if (transport<0)
{
copiemax++;
max=copiemax;
transport=copietr;
}
else
{
ok=false;
}
}
fprintf(iesire,"%d",copiemax);
}