Cod sursa(job #2157654)

Utilizator RaduNRadu Negovan RaduN Data 9 martie 2018 19:40:53
Problema Secv Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>
#include <algorithm>
#define caut first
#define poz second
using namespace std;
ifstream f;
ofstream g("secv.out");
int v[5001];
int s[5001];
pair <int, int> a[5001];
int main() {
    f.open("secv.in");
    int n, i, nr=0, mini=2000000001;
    f>>n;
    for(i=1; i<=n; i++) {
        f>>v[i];
        if(v[i]<mini) {
            nr=1;
            mini=v[i];
            a[1].poz=i;
        } else if(v[i]==mini) {
            a[++nr].poz=i;
        }
    }
    sort(v+1, v+n+1);
    int j=0;
    for(i=1; i<=n; i++) {
        int x=v[i];
        s[++j]=x;
        while(i<n && v[i+1]==x) {
            i++;
        }
    }
    f.close();
    f.open("secv.in");
    f>>n;
    for(i=1; i<=n; i++) {
        f>>v[i];
    }
    int k=j;
    for(i=1; i<=nr; i++) {
        a[i].caut=2;
    }
    j=1;
    while(1) {
        j++;
        for(i=1; i<=nr; i++) {
            if(a[i].poz<=n) {
                a[i].poz++;
                if(v[a[i].poz]==s[a[i].caut]) {
                    a[i].caut++;
                    if(a[i].caut>k) {
                        g<<j;
                        return 0;
                    }
                }
            }
        }
    }
    return 0;
}