Pagini recente » Cod sursa (job #1910216) | Cod sursa (job #1055005) | Cod sursa (job #434331) | Cod sursa (job #2079391) | Cod sursa (job #2168954)
#include <fstream>
#include <set>
#include <vector>
#include <cstring>
using namespace std;
ifstream f("distincte.in");
ofstream g("distincte.out");
const int N = 100005;
set<pair<int,int> > qr[N];
set<pair<int,int> >::iterator w, e;
int n, k, m, exist[N], i, j, a[N];
bool viz[N];
long long sol[N], x, y, suma;
int main() {
f >> n >> k >> m;
for (i = 1; i <= n; i++)
f >> a[i];
for (i = 1; i <= m; i++) {
f >> x >> y;
exist[x] = 1;
qr[x].insert({y, i});
}
for (i = 1; i <= n; i++) {
memset(viz,0,sizeof(viz));
if (exist[i] == 0) continue;
suma = 0;
w = qr[i].begin();
e = qr[i].end();
for (j = i; j <= n && w != e; j++) {
if (viz[a[j]] == 0)
viz[a[j]] = 1, suma += a[j];
if (j == w -> first){
sol[(*w).second] = suma;
w++;
}
}
}
for (i = 1; i <= m; i++)
g << sol[i] << '\n';
return 0;
}