Cod sursa(job #2965001)

Utilizator Redstoneboss2Fabian Lucian Redstoneboss2 Data 14 ianuarie 2023 11:17:37
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.41 kb
#include <bits/stdc++.h>

using namespace std;

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

bool subsir(string mic, string mare){
    int j = 0;

    for(int i = 0; i < mare.size() && j < mic.size(); i++){
        if(mic[j] == mare[i]){
            j++;
        }
    }

    return j >= mic.size();
}

int main(){

    int p, n, raspSize = 0;
    vector<string> v, rasp;

    fin >> p >> n;

    if(p == 1){
        string sMax;

        for(int i = 0; i < n; i++){
            string temp;

            fin >> temp;

            if(temp.size() > sMax.size()){
                sMax = temp;
            }else if(temp.size() == sMax.size() && temp < sMax){
                sMax = temp;
            }
        }

        fout << sMax;
    }else{
        v.resize(n);
        rasp.resize(n);

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

        for(int i = 0, flag, aux; i < v.size(); i++){
            flag = 0;

            for(int j = 0; j < v.size() && !flag; j++)
                if(j != i)
                    if(v[i].size() < v[j].size() && subsir(v[i], v[j]))
                        flag = 1;

            if(!flag){
                rasp[raspSize++] = v[i];
            }
        }

        fout << raspSize << '\n';

        for(int i = 0; i < raspSize; i++){
            fout << rasp[i] << '\n';
        }
    }

    return 0;
}