Cod sursa(job #586287)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 30 aprilie 2011 14:23:18
Problema Fabrica Scor 0
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 5-9 Marime 0.9 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
struct casa{bool S;long long T;};
int cmp(casa x,casa y)
{if(x.S!=y.S)
  return (x.S<y.S);
 else
  return (x.T<y.T);}
int cmp2(casa x,casa y)
{if(x.S!=y.S)
  return (x.S<y.S);
 else
  return (x.T>y.T);}
int main()
{int n,NRA,NRB,i;
long long TT=0;
freopen("fabrica.in","r",stdin);
freopen("fabrica.out","w",stdout);
casa v3[5001],v1[50001],v2[50001];
scanf("%d %d %d",&n,&NRA,&NRB);
for(i=1;i<=NRA;i++)
  {scanf("%lld",&v1[i].T);
  v3[i]=v1[i];}
//for(i=1;i<=NRB;i++)
//  scanf("%lld",&v2[i].T);
TT=1;
for(i=1;i<=n;i++)
  {sort(v1+1,v1+NRA+1,cmp);
  if(v1[1].S==0)
   v1[1].S=1;
  else
  if(v1[1].S==1)
   {if(v1[1].T<=TT-1)
     {TT+=v3[1].T;
     v1[1].T+=v3[1].T;}
    else
     {TT+=(v1[1].T-TT)+v3[1].T;
     v1[1].T+=v3[1].T;}}}
sort(v1+1,v1+NRA+1,cmp2);
if(v1[1].T>TT)
TT=TT+v1[1].T-TT;
printf("%lld %lld",TT,TT);}