Cod sursa(job #227043)

Utilizator cristiprgPrigoana Cristian cristiprg Data 3 decembrie 2008 16:07:00
Problema Operatii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#include <climits>
#define dim 1000000
FILE *in, *out;

int v[dim],n,contor;

void rez (int a, int b)
{
  int i,min=INT_MAX;
  for (i=a; i<=b; i++)
    if (v[i]<min)
      min=v[i];
  
  printf ("%d %d\n",a,b);
  for (i=a; i<=b; i++)
    v[i]-=min;
    
  for (i=1; i<=n; i++)  
    printf ("%d ",v[i]);
    
  printf ("min=%d\n",min);
  contor += min;
  
}


int main ()
{
  in = fopen ("operatii.in", "r" );
  out = fopen ("operatii.out", "w");
  fscanf (in, "%d", &n);
  int i;
  for (i=1; i<=n; i++)
    fscanf (in, "%d", &v[i]);
  
  int gata=0,j;
  while (!gata)
  {
    gata=1;
    for (i=1; i<=n ; i++)
      if (v[i]!=0)
        for (j=i; j<=n; j++)
          if (v[j+1]==0 || v[j]==n)
          {
            rez (i,j);
            i=j+1;
            gata=0;
            break;
          }
    
    
  }
  
  fprintf (out, "%d", contor);
  
  fclose (in);
  fclose (out);
  return 0;
}