Cod sursa(job #145161)

Utilizator cristiprgPrigoana Cristian cristiprg Data 28 februarie 2008 15:21:10
Problema Heavy metal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include"fstream"
#include"iostream"
#define dim 100000
using namespace std;
int a[dim],b[dim];

int n;

void citire()
{
    ifstream fin("heavymetal.in");
    fin>>n;
    int i;
    for(i=1;i<=n;++i)
       fin>>a[i]>>b[i];
    fin.close();
 }
 
     
void sortare()
{
    int i,aux,gata=0;
    while(!gata)
    {
      gata=1;
      for(i=1;i<n;++i)
        {
            if(b[i]>b[i+1])
               {
                gata=0;
                
                aux=b[i];
                b[i]=b[i+1];
                b[i+1]=aux;
                
                aux=a[i];
                a[i]=a[i+1];
                a[i+1]=aux;
                }
                
              if(b[i]==b[i+1])
                   if(a[i]<a[i+1])
                       {
                           aux=a[i];
                           a[i]=a[i+1];
                           a[i+1]=aux;
                        }    
         }                   
      }            
} 

void rezolvare()
{
    int i,j,timp=b[n]-a[n];
    for(i=n;i;--i)
      {
          j=n-1;
          while(a[i]<b[j])
             j--;
          timp+=b[j]-a[j];
          i=j+1;
       }
    ofstream fout("heavymetal.out");
    fout<<timp;
  //  cout<<timp<<"\n";
    fout.close();
}        

               
               
            
 
 

int main()
{
    citire();
    sortare();
    rezolvare();
   /* int i;
    for(i=1;i<=n;++i)
       cout<<a[i]<<" "<<b[i]<<"\n";
    //system("pause");*/
    return 0;
}