Cod sursa(job #1017568)

Utilizator vlad.florescu94FMI Florescu Vlad - Adrian vlad.florescu94 Data 27 octombrie 2013 22:21:27
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include<algorithm>
#include<ctime>
#include<cstdlib>
#include<stdio.h>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
long i,j,n,nr=0,nr2=0,q,k=0;
float a[1001],b[1001],v[500501],piv,aux;
long poz(long st,long dr)
{piv=v[st];
 while(st<dr)
   {if(v[st]>v[dr])
      swap(v[st],v[dr]);
    if(v[st]==piv)
        dr--;
    else
        st++;
   }
 return st;
}
void qs(long st, long dr)
{long z;
 if(st<dr)
  {z=poz(st,dr);
   qs(st,z-1);
   qs(z+1,dr);
  }
}
int main()
{f>>n;
 for(i=1;i<=n;i++)
    f>>a[i]>>b[i];
 for(i=1;i<n;i++)
    for(j=i+1;j<=n;j++)
      if(a[j]-a[i]==0)
        k=0;
      else
        {nr++;
         v[nr]=(b[j]-b[i])/(a[j]-a[i]);
        }
 qs(1,nr);
 i=1;j=0;q=0;
 while(i<=nr)
   {if(v[i]==v[i+1])
      {j++;
       q=(j*(j+1))/2;
      }
    else
      {nr2+=q;q=0;j=0;
      }
    i++;
   }
 g<<nr2;
 f.close();g.close();
 return 0;
}