Cod sursa(job #1580884)

Utilizator dsergiu05Sergiu Druga dsergiu05 Data 26 ianuarie 2016 11:34:45
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

ifstream fin("nrtri.in");
ofstream fout("nrtri.out");

const int nmax=100000000;
int v[nmax+1];

int main () {
    int n;
    fin>>n;

    int n2;
    for (n2 =1; n2<=n; n2*=2 ) {
    }
    n2/=2;

    for (int i=1; i<=n; i++) {
        fin>>v[i];
    }

    for (int i=1; i<=n; i++) {
        int j=i;
        while (j>=2 && v[j]<v[j-1]) {
            int a=v[j-1];
            v[j-1]=v[j];
            v[j]=a;
        }
    }

    int sol=0;
    for (int step=n2; step>0; step/=2) {
        if (sol+step<=n && v[sol+step]<=n) {
            sol+=step;
        }
    }

    fout<<sol<<"\n";

    return 0;
}