Pagini recente » Cod sursa (job #1962278) | Cod sursa (job #2499727) | Cod sursa (job #2074899) | Cod sursa (job #673326) | Cod sursa (job #1807992)
#include <bits/stdc++.h>
using namespace std;
int n, l, u, i, j;
unsigned x;
struct P {
unsigned val, cnt, start;
};
vector<P >nor;
vector<int> xx;
unsigned long long s;
int nx;
bool cmp(P a, P b) {
/*if (a.cnt == b.cnt)
return a.start < b.start;
return a.cnt < b.cnt;*/
}
int main() {
FILE *f = fopen("secv5.in", "r");
FILE *g = fopen("secv5.out", "w");
fscanf(f, "%d %d %d\n", &n, &l, &u);
for (i = 1; i <= n; i++) {
fscanf(f, "%d\n", &x);
if (!nor.empty()) {
if (nor.back().val == x)
nor.back().cnt++;
else nor.push_back({x, 1, i});
}
else nor.push_back({x, 1, i});
}
//sort(nor.begin(), nor.end(), cmp);
for (i = 0; i < nor.size(); i++) {
xx.clear();
xx.push_back(nor[i].val);
nx = 1;
for (j = i+1; j < nor.size(); j++) {
if (find(xx.begin(), xx.end(), nor[j].val) == xx.end()) {
nx++;
xx.push_back(nor[j].val);
}
if (nx >= l && nx <= u) {
s += nor[i].cnt*nor[j].cnt;
}
}
}
fprintf(g, "%d", s);
return 0;
}