Cod sursa(job #3183785)
| Utilizator | Data | 13 decembrie 2023 11:10:32 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 1.5 kb |
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#define NMAX 10000
vector<int> v1, v2;
int main() {
int x, n1 = 0;
int cnt = 0, found = 0;
// Citeste primul vector
while (1) {
cin >> x;
if (x != 0)
{
v1.push_back(x);
}
else
{
break;
}
}
while (1) {
cnt += found;
found = 0;
cin >> x;
if (x != 0)
{
v2.push_back(x);
}
else
{
break;
}
}
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
int n = v1.size(), m = v2.size();
int i = 0, j = 0;
while(i < n && j < m)
{
if(v1[i] < v2[j])
{
i ++;
}else if(v1[i] > v2[j])
{
j ++;
}else if(v1[i] == v2[j])
{
cnt ++;
i ++;
j ++;
}
}
while(i < n)
{
if(v1[i] < v2[j])
{
i ++;
}else if(v1[i] == v2[j])
{
cnt ++;
i ++;
}else
{
i ++;
}
}
while(j < m)
{
if(v1[i] > v2[j])
{
j ++;
}else if(v1[i] == v2[j])
{
cnt ++;
j ++;
}else
{
j ++;
}
}
cout << cnt + 1 << '\n';
return 0;
}
