Cod sursa(job #1016706)

Utilizator leontinLeontin leontin Data 26 octombrie 2013 17:17:50
Problema Trapez Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#include<iostream>



using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");

int k=0;
long i,j,n,nrel=1,nrel2=0;
float a[1001],b[1001],v[1000000];
void quick(float v[1000000], int left, int right)
 {
  int i = left, j = right;
  float tmp;
   float pivot = v[(left + right) / 2];

  while (i <= j) {
        while (v[i] < pivot)
              i++;
        while (v[j] > pivot)
              j--;
        if (i <= j) {
              tmp = v[i];
              v[i] = v[j];
              v[j] = tmp;
              i++;
              j--;
    }
}
if (left < j)
    quick(v, left, j);
if (i < right)
        quick(v,i, right);
}

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!=0)
            nrel2++;
         k=1;
        }
      else
        {
			v[nrel]=(b[j]-b[i])*1.0000/(a[j]-a[i]);
	  nrel++;
	  }
quick(v,1,nrel-1);
 for(i=1;i<nrel-1;i++)
   if(v[i]==v[i+1])
     nrel2++;
 g<<nrel2<<endl;
  for(i=1;i<nrel;i++)
	 g<<v[i]<<" ";
 f.close();
 g.close();
 return 0;
}