Cod sursa(job #1207639)

Utilizator katakonst94Pirvu Constantin Catalin katakonst94 Data 13 iulie 2014 15:21:12
Problema Divizori Primi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
using namespace std;
long long m,a[1000],mx;
int caut (int s,int d,int x,int i,int j)
{
    if(s>d)
        return 0;
    else
        {
            m =(s+d)/2;
            if (x>=a[m]){

                  mx=m;
                return caut(m+1,d,x,i,j);
            }
            if (x<a[m])
                return caut(s,m-1,x,i,j);
            else
                return caut(m+1,d,x,i,j);
        }
}
int main()
{
    ifstream f("nrtri.in");
    ofstream g("nrtri.out");
    int n;
f>>n;
    for(int i=1;i<=n;i++)
           f>>a[i];

           long long mn,man,i,k,j;
   for (i=1;i<=n;i++){
 mn=a[i];
 k=i;
 for (j=i+1;j<=n;j++)
 if (a[j]<mn){
 mn=a[j];
 k=j;
}
 man=a[k];
 a[k]=a[i];
 a[i]=man;

 }
k=0;
long long poz=0;
 for(int i=1;i<n;i++)
 for(int j=i+1;j<=n;j++){
        caut(j,n,a[i]+a[j],i,j);
            poz+=mx-j;
 }
g<<poz;
    return 0;
}