Cod sursa(job #2043000)

Utilizator KrosomAngelo Barbu Krosom Data 19 octombrie 2017 16:02:31
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.73 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("interesant.in");
ofstream g("interesant.out");

int n, v;
char sir[201][5000];

void read()
{
    f>>v>>n;
    for (int i=1; i<=n; i++)
    {
        f.get();
        f.get(sir[i], 5000);
    }
    f.close();
}

void v1()
{
    bool ok;
    int nr=0, nrs=0, maxi=0;
    char maxisir[5000];
    for (int i=1; i<=n; i++)
    {
        ok=true;
        for (int j=1; j<=n; j++)
                if (i!=j && strlen(sir[i])<=strlen(sir[j]))
                {
                    nr=strlen(sir[i]);
                    for (int k=0; k<strlen(sir[j]); k++)
                        if (strchr(sir[j], sir[k][i]))
                            nrs++;
                    if (nr<=nrs)
                        ok=false;
                }
        if (ok==true)
            if (nr>maxi)
                {
                    strcpy(maxisir, sir[i]);
                    maxi=nr;
                }
        nrs=0;
    }
    g<<maxisir<<'\n';
    g.close();
}

void v2()
{
    bool ok;
    int nr=0, nrs=0, maxi=0;
    char maxisir[5000];
    for (int i=1; i<=n; i++)
    {
        ok=true;
        for (int j=1; j<=n; j++)
                if (i!=j && strlen(sir[i])<=strlen(sir[j]))
                {
                    nr=strlen(sir[i]);
                    for (int k=0; k<strlen(sir[j]); k++)
                        if (strchr(sir[j], sir[k][i]))
                            nrs++;
                    if (nr<=nrs)
                        ok=false;
                }
        if (ok==true)
            g<<sir[i]<<'\n';
    }
    g.close();
}

int main()
{
    read();
    if (v==2)
        v2();
        else
            v1();
    return 0;
}