Cod sursa(job #1016699)

Utilizator vlad.florescu94FMI Florescu Vlad - Adrian vlad.florescu94 Data 26 octombrie 2013 17:07:18
Problema Trapez Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include<algorithm>
#include<ctime>
#include<cstdlib>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
bool k=0;
long i,j,n,nr=0,nr2=0;
float a[1001],b[1001],v[500501];
long poz(long p,long u)
{long piv;
 piv=v[p];
 while(p<u)
   {if(v[p]>v[u])
      {float aux=v[u];v[u]=v[p];v[p]=aux;}
    if(v[p]==piv)
        u--;
    else
        p++;
   }
 return p;
}

void qs(long st, long dr)
{long k;
   if(st<dr)
     {k=poz(st,dr);
      qs(st,k-1);
      qs(k+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)
        {if(k)
            nr2++;
         k=1;
        }
      else
        {nr++;
         v[nr]=(b[j]-b[i])/(a[j]-a[i]);}
 qs(1,nr);
 for(i=1;i<nr-1;i++)
   if(v[i]==v[i+1])
     nr2++;
 g<<nr2;
 f.close();g.close();
 return 0;
}