Cod sursa(job #2225893)

Utilizator Ioana_GaborGabor Ioana Ioana_Gabor Data 28 iulie 2018 15:58:53
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.41 kb
/*
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

struct pereche{
    int a,b;
};

bool criteriu(pereche x,pereche y){
    if(x.a<y.a){
        return true;
    }else if(x.a==y.a && x.b<y.b) {

        return true;
    }
    return false;
}

int main() {
    ifstream f("granita.in");
    ofstream g("granita.out");
    int n,aux;
    pereche sir[16001];
    f>>n;
    for(int i=1;i<=n;i++) {
        f>>sir[i].a>>sir[i].b;
    }
    sort(sir+1,sir+n+1,criteriu);
    int maxim=0,inutil=0;
    for(int i=1;i<=n;i++) {
        if(sir[i].b>maxim){
            maxim=sir[i].b;
        }else{
            inutil++;
        }
    }
    g<<inutil;
    f.close();
    g.close();
}
*/
/*
#include<iostream>
#include<fstream>

using namespace std;

ofstream g("palindrom2.out");

char rez[2000001];
int l_rez;

bool palindrom(char sir[1000001],int l_vector) {
    int k,s;
    for(int i=0;i<=l_vector/2-1;i++) {
        k=l_vector/2 -i;
        s=l_vector-k+1;
        if(sir[k]!=sir[s]) {
            return false;
        }
    }
    return true;
}
void modifica_sir(int lungime,char sir[100001],int i) {
    l_rez=lungime+i;
    for(int k=1;k<=lungime;k++) {
        rez[k]=sir[k];
    }
    for(int j=1;j<=i;j++) {
        rez[l_rez-j +1]=sir[j];
    }
}
void tipareste_sir(char sir[100001],int lungime) {
    for(int i=1;i<=lungime;i++) {
        g<<sir[i];
    }
}
int main() {
    ifstream f("palindrom2.in");
    char c;
    char date[1000001];
    int l_date=0;
    while(f>>c) {
        l_date++;
        date[l_date]=c;
    }
    if(palindrom(date,l_date)) {
        tipareste_sir(date,l_date);
    }else{
        for(int i=1;i<l_date;i++) {
            modifica_sir(l_date,date,i);
            if(palindrom(rez,l_rez)) {
                tipareste_sir(rez,l_rez);
                break;
            }
        }
    }
    f.close();
    g.close();
}
*/
#include <algorithm>
#include <fstream>

using namespace std;

int main() {
    ifstream f("nrtri.in");
    ofstream g("nrtri.out");
    int n,sir[801],contor=0,ok=1;
    f>>n;
    for(int i=1;i<=n;i++) {
        f>>sir[i];
    }
    sort(sir+1,sir+n+1);
    for(int i=1;i<=n-2;i++){
        for(int j=i+1;j<=n-1;j++){
            for(int k=j+1;k<=n && ok;k++){
                if(sir[i]+sir[j]>=sir[k]){
                    contor++;
                }else{
                    ok=0;
                }
            }
        }
    }
    g<<contor;
    f.close();
    g.close();
}